如何更改 TreeMenu 中的节点?
How to change node in TreeMenu?
我有一些节点的 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');
树必须有某种 store / root (NodeInterface)。您只需更改 store / root 中的值,树就会自动更改。
你不应该使用 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');
}
检查此 fiddle:https://fiddle.sencha.com/#fiddle/1hc1
我不确定您使用的是哪个版本的 ExtJS?分机 3?或多或少,所有 Ext 版本的概念应该是相同的。
我有一些节点的 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');
树必须有某种 store / root (NodeInterface)。您只需更改 store / root 中的值,树就会自动更改。
你不应该使用 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');
}
检查此 fiddle:https://fiddle.sencha.com/#fiddle/1hc1
我不确定您使用的是哪个版本的 ExtJS?分机 3?或多或少,所有 Ext 版本的概念应该是相同的。