我在使用 ExtJS 4.0.7 TreePanel 时遇到了麻烦。我想从 JSON 请求中加载完整的树。该请求返回以下内容:
{
"data": {
"children": [
{
"text": "OS",
"leaf": false,
"children": [
{
"text": "Hostname",
"leaf": false,
"children": [
{
"text": "hostname.int.com",
"leaf": true,
"children": []
}
]
}
]
}
]
}
}
它不适用于以下商店配置(或我尝试过的任何其他配置)
Ext.define('My.store.SysInfo', {
extend: 'Ext.data.TreeStore',
model: 'My.model.SysInfo',
proxy : {
type : 'ajax',
url : '/sysinfo/getSysInfo.php',
reader : {
root : 'data'
}
}
});
该模型具有以下代码:
Ext.define('My.model.SysInfo', {
extend: 'Ext.data.Model',
fields: ['text']
});
使用此配置添加树形面板时,它不起作用:
{
xtype: 'treepanel',
name : 'sysinfo',
height: '100%',
store: 'My.store.SysInfo',
lines: true,
autoScroll : true,
expanded : true,
rootVisible: false,
folderSort: true,
multiSelect: false,
useArrows: true,
}
通过打开一个节点,ExtJS 总是通过 ajax 请求将整个树从它的根节点加载到子节点中,而不是显示预加载的数据。我怎样才能通过打开“OS”来加载“主机名”节点?