2011-12-05 38 views

回答

12

使用內存代理創建TreeStore實例,然後將該商店的ROOT NODE設置爲您擁有的靜態數據。

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

var store = Ext.create('Ext.data.TreeStore', { 
    model: 'Task', 
    proxy: { 
     type: 'memory' 
    }, 
    folderSort: true 
}); 

var data = { 
    "text":".", 
    "children": 
     [ 
      { 
       task:'Project: Shopping', 
       user:'Will', 
       iconCls:'task-folder', 
       expanded: true, 
       children: 
       [ 
        { 
         task:'Housewares', 
         user:'Will', 
         iconCls:'task-folder', 
         expanded: true, 
         children:[ 
          { 
           task:'Kitchen supplies', 
           user:'Alpha', 
           leaf:true, 
           iconCls:'task' 
          }, 
          { 
           task:'Groceries', 
           user:'Bravo', 
           leaf:true, 
           iconCls:'task' 
          } 
         ] 
        } 
       ] 
      } 
     ] 
    }; 

var rootNode = store.setRootNode(data); 
3

在TreeStore中有root而不是data

+0

+1使用ExtJS的'4.2.1.883'。 – leaf

5

你也可以這樣做:

var store = Ext.create('Ext.data.TreeStore', { 
    model: tree_model, 
    // normally the data object would go here 
    proxy: { 
     data : data, // instead it goes here 
     type: 'memory', 
     reader: { 
      type: 'json', 
     } 
    }, 
});