我有TreeMenu和一些节点:
{
text: 'Test',
leaf: true
}
我在TreeMenu上附加了一个监听器:
listeners: {
contextmenu: function(node, event) {
ContextMenu.showAt(event.getXY());
event.stopEvent();
}
}
但我不知道如何更改节点:
// HTML don't changed
node.text = 'my value';
// Uncaught TypeError: node.reload is not a function
node.reload();
UPD
我以这种方式决定:node.setText('my value');
答案 0 :(得分:1)
树必须有某种store / root(NodeInterface)。您所要做的就是更改商店/根目录中的值,树将自动更改。
你永远不应该使用node.text = 'my value'
因为在大多数情况下它不仅仅是简单的对象。您应该使用node.set('text', 'My Text');
更改的处理函数可能如下所示:
handler: function() {
var tree = Ext.ComponentQuery.query('treepanel')[0];
var child = tree.getRootNode().getChildAt(0);
child.set('text', 'Chaned text');
}
检查这个小提琴:https://fiddle.sencha.com/#fiddle/1hc1
我不确定您使用的ExtJS的确切版本是什么?外线3?所有Ext版本的概念或多或少都应该相同。