Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tree ExtJs 4.2:树面板递归根节点加载而不是子节点_Tree_Treeview_Extjs4.2 - Fatal编程技术网

Tree ExtJs 4.2:树面板递归根节点加载而不是子节点

Tree ExtJs 4.2:树面板递归根节点加载而不是子节点,tree,treeview,extjs4.2,Tree,Treeview,Extjs4.2,使用ExtJSV4.2.1试用版,我无法从JSON文件构建完整的树面板。每次展开/折叠子节点时,都会向服务器发出请求,服务器使用相同的JSON进行响应,从而复制根节点。 首先,我需要从JSON文件解释rood节点,而不是在存储中硬编码,其次,ajax请求只是读取JSON文件来模拟服务器响应 在谷歌搜索了很多阅读问答之后,这里是: 已检查叶=真/假的所有节点 存储中的硬编码根节点 对节点添加loaded=true 向代理添加了一个读卡器,以指向JSON响应中的根节点 玩rootVisible=bo

使用ExtJSV4.2.1试用版,我无法从JSON文件构建完整的树面板。每次展开/折叠子节点时,都会向服务器发出请求,服务器使用相同的JSON进行响应,从而复制根节点。 首先,我需要从JSON文件解释rood节点,而不是在存储中硬编码,其次,ajax请求只是读取JSON文件来模拟服务器响应

在谷歌搜索了很多阅读问答之后,这里是:

已检查叶=真/假的所有节点 存储中的硬编码根节点 对节点添加loaded=true 向代理添加了一个读卡器,以指向JSON响应中的根节点 玩rootVisible=bool 还有更多。。。
如何从JSON加载树,包括这个版本的ExtJs v4.2.1中的子级?

我不想绑定到事件并进行变通,这必须在没有任何自定义函数或覆盖的情况下进行。有很多变通方法都表明了这一点

这就是我的工作原理:

view/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,
});
Ext.define('ExtApp.store.Menus', {
    extend  : 'Ext.data.TreeStore',
    proxy   : {
        type    : 'ajax',
        url     : 'path/to/file.json'
    },
    root    : {
        expanded: true
    }
});
store/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,
});
Ext.define('ExtApp.store.Menus', {
    extend  : 'Ext.data.TreeStore',
    proxy   : {
        type    : 'ajax',
        url     : 'path/to/file.json'
    },
    root    : {
        expanded: true
    }
});
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
        }]
    }]
}

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

如果您有一个错误config.init未定义,treeviewdragdrop插件没有加载它需要的所有内容,因此您需要手动要求它们,请参阅