2

私はボット フレームワークを初めて使用し、ノード SDK を使用して Skype チャット ボットに取り組んでいます。

ツリー データの ID と名前を提供する 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 );

ID を取得しようとするとうまくいきますが、1 つの配列でタイトルを取得したい場合は、次のエラーが発生します。

/node_modules/promise/lib/done.js:10
      throw err;
      ^

TypeError: choice.trim is not a function
4

1 に答える 1

1

変数「choice」をどこにも定義していないようです。

treeName.title

また

treename.children[X].title

この場合、最初のものは「メニュー」を返しますが、2番目のものは「company_data」または「adhoc data test」などを返します。

配列またはオブジェクトで .trim() を使用することはできません。

于 2017-06-08T09:42:54.033 に答える