首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExtJS 4.0.7加载完整的TreePanel

ExtJS 4.0.7加载完整的TreePanel
EN

Stack Overflow用户
提问于 2012-08-29 18:59:27
回答 1查看 2.7K关注 0票数 4

我遇到了ExtJS 4.0.7 TreePanel的麻烦。我想加载完整的树从JSON的请求。该请求返回以下内容:

代码语言:javascript
复制
{
  "data": {
    "children": [
      {
        "text": "OS",
        "leaf": false,
        "children": [
          {
            "text": "Hostname",
            "leaf": false,
            "children": [
              {
                "text": "hostname.int.com",
                "leaf": true,
                "children": []
              }
            ]
          }
        ]
      }
    ]
  }
}

它不适用于以下存储配置(或我尝试过的任何其他存储配置)

代码语言:javascript
复制
Ext.define('My.store.SysInfo', {
extend: 'Ext.data.TreeStore',
    model: 'My.model.SysInfo',

    proxy : {
        type : 'ajax',
        url : '/sysinfo/getSysInfo.php',
        reader : {
            root : 'data'
        }
    }
});

该模型具有以下代码:

代码语言:javascript
复制
Ext.define('My.model.SysInfo', {
    extend: 'Ext.data.Model',
    fields: ['text']
});

使用此配置添加treepanel时,它不起作用:

代码语言:javascript
复制
{
    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“来加载"Hostname”节点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-31 00:34:31

你绝对可以做到。但是你的json似乎有点问题。

json的根是data,但是为了正确加载嵌套数据,根属性和所有子属性必须相同。由于您已经将读取器的根目录定义为data,因此应该将json中的所有children替换为data

请看看this question,如果你想对它有更深入的理解,也可以看看this question。你也可以看看这个working JsFiddle

如果你这样定义你的阅读器:

代码语言:javascript
复制
    reader : {
        type: 'json',
        // root : 'children' // no real need for this a children is the default.
    }

这个json应该正确加载:

代码语言:javascript
复制
{
  "children":[
     {
        "text":"OS",
        "leaf":false,
        "children":[
           {
              "text":"Hostname",
              "leaf":false,
              "children":[
                 {
                    "text":"hostname.int.com",
                    "leaf":true,
                    "children":[

                    ]
                 }
              ]
           }
        ]
     }
  ]
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12176410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档