2016-12-12 10 views
2

私は、bot SDKを使って、botのフレームワークを初めて使い、skype chat botに取り組んでいます。Skype chat bot framework-node.js

私はツリーデータの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 

答えて

1

変数 'c​​hoice'はどこにも定義されていないようです。

treeName.title 

又は

treename.children[X].title 

最初のものでしょう、この場合、リターン 'メニュー' で、もう一つは等 "company_data"、または "アドホック・データ・テスト" を返し、一方

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

編集:私が見つけたものを見てください... https://github.com/Microsoft/BotBuilder/issues/2004

関連する問題