我有一个按钮,我点击了一个点击事件。
我还有一个用静态JSON加载的TreePanel。
TreePanel的ItemID为projectTree
在我的按钮点击事件中,我有:
var treeNode = projectTree.getRootNode();
treeNode.expandChildren(true); // Optional: To see what happens
treeNode.appendChild({
name: 'Child 4',
leaf: true,
element : 6
});
treeNode.getChildAt(2).getChildAt(0).appendChild({
name: 'Grand Child 3',
leaf: true,
element: 7
});
它不会添加节点。我做错了什么?
var treeNode = this.child('#projectTree').getRootNode();
treeNode.expandChildren(true); // Optional: To see what happens
treeNode.appendChild({
name: 'Child 4',
leaf: true,
element : 6
});
// This one does not work
treeNode.childNodes(0).nextSibling.appendChild({
name: 'Grand Child 3',
leaf: true,
element: 7
});
答案 0 :(得分:0)
您需要先引用TreePanel,不能只使用itemID作为参考。有很多方法可以做到这一点,最简单的方法是使用Ext.getCmp:
var projectTree = Ext.getCmp('projectTree');
假设您只有1个带有该itemID的组件,如果没有,最好使用ComponentQuery,这也是我首选的方法。例如,如果您的TreePanel位于具有itemID“TreePanelContainer”的Container中:
var projectTree = Ext.ComponentQuery.query('#TreePanelContainer > #TreePanel');
<强>更新强>
是否需要使用nextSibling
?你为什么不用childNodes[1]
?
treeNode.childNodes[1].appendChild({
小提琴:fiddle.sencha.com/#fiddle/1rb
也许我错了,但我检查了文档,并且TreeNode没有element
配置。也许你正在使用odler版本代码。尝试Sencha页面的官方文档。