2017-04-13 52 views
1

我需要显示ExtJS的兼容项目作为树的JSON,这里是它的外观像让TreePanel中显示ExtJS的项目,如儿童

{ 
    text: 'Menu Root', 
    expanded: true, 
    items: [ 
      { text: 'detention', leaf: true }, 
      { text: 'homework', expanded: true, items: [ 
      { text: 'book report', leaf: true }, 
      { text: 'algebra', leaf: true} 
      ] }, 
      { text: 'buy lottery tickets', leaf: true } 
     ] 
} 

如果itemschildren它工作正常,但与items事实并非如此。我没有在ExtJS6文档中找到让Treepanel将项目视为孩子的方法。仅供参考,这些是需要考虑的一些内容。我使用setRootNode添加这treestore

回答

2

它可以通过在树存储配置配置defaultRootProperty缺省实现以"items"到:"children"

Ext.application({ 
 
    name: 'Fiddle', 
 

 
    launch: function() { 
 
var store = Ext.create('Ext.data.TreeStore', { 
 
    defaultRootProperty : 'items', // need change the default "children" to "items" 
 
    root: {  
 
    text: 'Menu Root', 
 
    expanded: true, 
 
    items: [ 
 
      { text: 'detention', leaf: true }, 
 
      { text: 'homework', expanded: true, items: [ 
 
      { text: 'book report', leaf: true }, 
 
      { text: 'algebra', leaf: true} 
 
      ] }, 
 
      { text: 'buy lottery tickets', leaf: true } 
 
     ] 
 
     
 
} 
 
}); 
 

 
Ext.create('Ext.tree.Panel', { 
 
    title: 'Simple Tree', 
 
    width: 200, 
 
    height: 150, 
 
    store: store, 
 
    renderTo: Ext.getBody() 
 
}); 
 

 
    } 
 
});
<link rel="stylesheet" href="https://cdn.sencha.com/ext/gpl/4.2.1/packages/ext-theme-neptune/build/resources/ext-theme-neptune-all.css"><!-- framework javascript --><script type="text/javascript" src="https://cdn.sencha.com/ext/gpl/4.2.1/ext-all-debug.js"></script><script type="text/javascript" src="https://cdn.sencha.com/ext/gpl/4.2.1/packages/ext-theme-neptune/build/ext-theme-neptune-debug.js"></script>