Фреймворк для ботов в Skype - node.js
Я новичок в фреймворке ботов и работаю над скайп-ботом с помощью узла SDK.
У меня есть массив дерева JSON, который предоставляет мне идентификатор и имена для данных дерева.
treeName = tree.parse({
"id": 1,
"title": "menu",
"children": [
{
"id": 11,
"title": "company _ data",
"children": [{"id": 111}]
},
{
"id": 12,
"title": "adhoc data test ",
"children": [{"id": 121}, {"id": 122}]
},
{
"id": 13,
"title": "quit",
"children": [{"id": 131}, {"id": 132}]
}
]
});
Код для получения заголовка из дерева.
var node1 = treeName.first(function (node) {
return node.model.id === 1;
});
массив
var firstChild = [];
for (var i = 0; i < node1.model.children.length; i++) {
firstChild.push(node1.model.children[i].title);
}
builder.Prompts.choice(session, "What scenario would you like to run? ",firstChild );
Когда я пытаюсь получить идентификатор, он будет работать хорошо, но если я хочу получить заголовок в одном массиве, я получаю эту ошибку:
/node_modules/promise/lib/done.js:10
throw err;
^
TypeError: choice.trim is not a function
1 ответ
Похоже, вы нигде не определили переменную "выбор".
treeName.title
или же
treename.children[X].title
Первый из них в этом случае возвращает "menu", тогда как второй возвращает "company_data" или "adhoc data test" и т. Д.
Вы не можете использовать.trim() для массивов или объектов.
РЕДАКТИРОВАТЬ: Посмотрите, что я нашел... https://github.com/Microsoft/BotBuilder/issues/2004