在文件夹打开时动态加载树的子节点

时间:2012-11-04 15:57:10

标签: extjs extjs4

我是extjs的新手,我正在尝试使用Tree视图。

我正在构建一个“API资源管理器”,并且只有太多的节点要作为单个json对象(几百万个节点)发送。我想要做的是最初将第一层类别作为json发送,然后在展开时执行ajax请求以获取该类别的所有子项。

我不知道该怎么做或者是否有可能。任何人都可以带领我朝着正确的方向前进吗?

1 个答案:

答案 0 :(得分:4)

实际上,这是文档建议的“正常”方式。看看Tree examples中的任何一个。

您基本上设置了Ext.data.TreeStore与代理,例如Ext.data.proxy.Ajax

xtype: 'treepanel',
loadMask: {msg: 'Loading...'},
store: Ext.create('Ext.data.TreeStore', {
    proxy: {
        type: 'ajax',
        url: 'get-nodes.php'
    }
})

每次用户展开其中一个节点时,将使用设置为展开节点的 id 的参数 node 来命中URL,并返回一个数组这个节点的孩子。这些孩子不得拥有 children 属性,否则他们将被视为已加载,并且不会在扩展时加载。