我对ExtJS不太熟悉,但正在开发一个使用它的项目。
我们正在使用TreePanel和TreeLoader,它在一次调用中从服务器加载所有节点数据。我们有一个事件,我需要访问树中每个节点的属性。我这样做的方式是使用TreePanel的getNodeById方法。问题是树面板似乎懒得加载节点,除非已经加载了节点,否则将无法使用getNodeById检索节点。
有没有办法强制加载所有节点?我最接近的是使用TreeLoader上的preloadChildren属性,但这仍然只在加载包含子节点的父节点时加载。
答案 0 :(得分:2)
如果您希望能够访问所有节点,则必须在第一次调用时加载完整的树结构。
第一次调用时的JSON响应应该包括所有树节点。例如:
[{
id: 1,
text: 'A leaf Node',
leaf: true
},{
id: 2,
text: 'A folder Node',
children: [{
id: 3,
text: 'A child Node',
leaf: true
}]
}]