使用ExtJs v4.2.1(试用版)我无法从JSON文件构建完整的treePanel。每次扩展/折叠子项时,都会向服务器发出请求,该服务器使用相同的JSON进行响应,从而复制根节点。 首先,我需要从JSON文件解释rood节点,而不是在商店中硬编码,然后ajax请求只是读取JSON文件来模拟服务器响应。
所以经过大量的谷歌搜索后,这是What I've Tried:
如何从这个版本的ExtJs(v4.2.1)中的JSON(包括孩子)加载树?
答案 0 :(得分:0)
我不想绑定到某个事件并进行解决方法,这必须在没有任何自定义函数或覆盖的情况下工作(有很多解决方法可以提示)。
所以这对我有用:
查看/ Menus.js:
Ext.define('ExtApp.view.Menus', {
extend : 'Ext.tree.Panel',
alias : 'widget.Menus',
store : 'Menus',
rootVisible : false,
autoScroll : true,
xtype : 'Menus',
viewConfig : {
plugins : { ptype: 'treeviewdragdrop' }
},
useArrows : true,
});
存储/ Menus.js:
Ext.define('ExtApp.store.Menus', {
extend : 'Ext.data.TreeStore',
proxy : {
type : 'ajax',
url : 'path/to/file.json'
},
root : {
expanded: true
}
});
file.json(。将不会在树中加载/可见。)
{
text : '.',
children: [{
text :'m0',
id :'m0',
leaf :true
},{
text :'m1',
expanded: true,
id :'m1',
children:[{
text :'m11',
id :'m11',
leaf :false,
children:[{
text :'m111',
id :'m111',
leaf :true
}]
},{
text :'m12',
id :'m12',
leaf :false,
children:[{
text :'m121',
id :'m121',
leaf :true
}]
},{
text :'m13',
id :'m13',
leaf :true
},{
text :'m14',
id :'m14',
leaf :true
}]
},{
text :'m2',
children:[{
text :'m21',
id :'m21',
leaf :true
}]
}]
}
希望这会对其他人有所帮助,因为我在树面板上看到了很多关于类似问题的问题。