【发布时间】:2016-12-15 09:40:34
【问题描述】:
我正在开发一个使用 Watson 技术的聊天机器人,更准确地说是使用对话服务。这是我在 Bluemix 上使用 javascript 的第一个应用程序,我的聊天机器人的显示消息有问题。我解释一下:目前我有这个代码:
var text = response.output.text[0]; // only display first value
还有我的函数displayMessage
function displayMessage(text, user) {
var chat = document.getElementById('chatBox');
var bubble = document.createElement('div');
bubble.className = 'message'; // Wrap the text first in a message class for common formatting
// Set chat bubble color and position based on the user parameter
if (user === watson) {
bubble.innerHTML = "<div class='bot'>" + text + "</div>";
} else {
bubble.innerHTML = "<div class='user'>" + text + "</div>";
}
chat.appendChild(bubble);
chat.scrollTop = chat.scrollHeight; // Move chat down to the last message displayed
document.getElementById('chatMessage').focus();
return null;
}
目前的问题是该函数只显示我的第一个值,但在某些情况下我必须显示 n 消息(n 始终 while (array[i] != undefined) 存储我的消息。但我的错误在于函数 displayMessage 中的显示 - 我不知道如何显示多条消息。我试过这个:
bubble.innerHTML = "<div class='bot'>" + tab[tmp] + "</div>";
和我的声明中一样的循环,但它不起作用。
有人可以帮助我吗?
谢谢
编辑 n°1 通知您这是我在创建标签时的第一个循环:
var tab = new Array(response.output.text[0]); // array with my different text
var tmp = 1;
while(response.output.text[tmp] != undefined){
tab[tmp] = response.output.text[tmp]; // only display first value if second is null
tmp = tmp + 1;
}
【问题讨论】:
标签: javascript ibm-cloud watson-conversation