ExtJS 4.0.7加载完整的TreePanel
ExtJS 4.0.7 Load complete TreePanel
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"加载"主机名"节点?
你绝对可以做到。但是您的json似乎有问题。
json的根是data
,但为了正确加载嵌套数据,根和所有子属性必须相同。既然您已经将阅读器的根定义为data
,那么您应该将json中的所有children
替换为data
。
请看这个问题,如果你想更深入地了解这一切,也可以看这个问题。你也可以看看这个工作JsFiddle。
如果你这样定义你的读者:
reader : {
type: 'json',
// root : 'children' // no real need for this a children is the default.
}
这个json应该正确加载:
{
"children":[
{
"text":"OS",
"leaf":false,
"children":[
{
"text":"Hostname",
"leaf":false,
"children":[
{
"text":"hostname.int.com",
"leaf":true,
"children":[
]
}
]
}
]
}
]
}
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- ExtJS 4.0.7加载完整的TreePanel
- 在Ext.tree.TreePanel中,当我们加载树时,没有任何事件可以检查是否所有树节点都已完全加载
- ExtJS4: TreePanel Store通过Itemclick一次又一次地加载json文件
- ExtJS 4 TreePanel自动加载