我正在尝试遍历树面板中的所有节点。问题是如果我在调用node.eachChild()
之前没有展开节点,节点会认为它没有任何子节点。 (即使它确实如此)
如果查看我的jsfiddle,单击Traverse按钮而不展开任何节点,它将只显示根节点+其三个子节点。现在,如果您返回并展开所有子节点,请关闭它们,然后再次单击该按钮,它会显示所有节点。
如何让我的树面板加载所有子节点,以便在onReady之后立即通过所有子节点?
注意:我也不希望在onLoad()中扩展节点,因此无法使用tree.getRootNode()。expand()不是一个好的解决方案。
答案 0 :(得分:1)
将 loader:new Ext.tree.TreeLoader({preloadChildren:true})添加到TreePanel配置应该可以。
new Ext.tree.TreePanel({
renderTo: Ext.getBody(),
loader: new Ext.tree.TreeLoader({ preloadChildren: true }), //New Config
id: 'mainTree',
title: 'Packages',
useArrows: true,
autoScroll: true,
containerScroll: true,
frame: true,
rootVisible: false,
root: rootNode,
buttons: [traverse]
});