首页 文章

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

提问于
浏览
0

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

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

  • 检查所有节点的叶子= true / false(see

  • 存储区中的硬编码根节点

  • 已将loaded = true添加到节点(see

  • 向代理添加了一个阅读器,指向JSON响应中的根节点(see

  • 使用rootVisible = bool
    还有很多 ...

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

1 回答

  • 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( . 将不会在树中加载/ visivle):

    {
        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
            }]
        }]
    }
    

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

相关问题