ExtJs 4.2:TreePanel递归根节点加载而不是子节点

时间:2014-01-31 15:42:43

标签: tree treeview extjs4.2

使用ExtJs v4.2.1(试用版)我无法从JSON文件构建完整的treePanel。每次扩展/折叠子项时,都会向服务器发出请求,该服务器使用相同的JSON进行响应,从而复制根节点。 首先,我需要从JSON文件解释rood节点,而不是在商店中硬编码,然后ajax请求只是读取JSON文件来模拟服务器响应。

所以经过大量的谷歌搜索后,这是What I've Tried

  • 检查所有节点的leaf = true / false(see
  • 商店中的硬编码根节点
  • 已将loaded = true添加到节点(see
  • 向代理添加了一个阅读器,指向JSON响应中的根节点(see
  • 玩rootVisible = bool
    还有更多...

如何从这个版本的ExtJs(v4.2.1)中的JSON(包括孩子)加载树?

1 个答案:

答案 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
        }]
    }]
}

希望这会对其他人有所帮助,因为我在树面板上看到了很多关于类似问题的问题。