2017-01-04 8 views
1

既に初期化されたTreeStoreにデータをプログラムで追加する方法を理解するのに困っています。私は4親項目が追加取得結果Sencha Touch 2.4:プログラムでTreeStoreに複数のレコードを追加する方法

var data = { 
     "items" : [{ 
      "text" : "Today", 
      "items" : [{ 
         "text" : "Eat", 
         "leaf" : true 
        }, { 
         "text" : "Sleep", 
         "leaf" : true 
        }, { 
         "text" : "Drinking", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "Tomorrow", 
      "items" : [{ 
         "text" : "Watch TV", 
         "leaf" : true 
        }, { 
         "text" : "Watch Video", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "This week", 
      "items" : [{ 
         "text" : "Shopping", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "Later", 
      "items" : [{ 
         "text" : "Eat", 
         "leaf" : true 
        }, { 
         "text" : "Sleep", 
         "leaf" : true 
        }, { 
         "text" : "Drinking", 
         "leaf" : true 
        }] 
     }] 
    }; 

    Ext.define('Task', { 
     extend: 'Ext.data.Model', 
     config: { 
      fields: [{ 
       name: 'text', 
       type: 'string' 
      }] 
     } 
    }); 

    var store = Ext.create('Ext.data.TreeStore', { 
     model: 'Task', 
     defaultRootProperty: 'items', 
     //root: data 
    }); 

    store.addData(data.items); // I need to add data here 

    console.log(store.getAllCount()) // prints 4 but should be 13 

は煎茶タッチのドキュメントからの例を考えてみましょう。子供はいません。

ありがとうございます。

+0

は、あなたがより注意深く私のコードを見ている場合は、defaultRootPropertyに気づくでしょうchildren'代わりitems' –

答えて

0

ツリーの最初のレベルのみを追加します。 ExtJSは子どもを探して、彼の木を内部的に作ります。

変更し、すべてのあなたのJSONでchildrenによってitems

var data = { 
     "items" : [{ 
      "text" : "Today", 
      "children" : [{     // <<== HERE 
         "text" : "Eat", 
         "leaf" : true 
        }, { 
         "text" : "Sleep", 
         "leaf" : true 
        }, { 
         "text" : "Drinking", 
         "leaf" : true 
        }] 
     }, { 
      "text" : "Tomorrow", 
      "children" : [{    // <<== AND HERE 

      // etc, ... 
+0

'の'で試してみてください。「アイテム」は子供のプロパティの命名の世話をします。ストアの初期化にアイテムが追加されていても、ソリューションは機能しません(非コメントのルート:データ)。 – terreb

関連する問題