如何在TreeMenu中更改节点?

时间:2016-09-26 07:13:06

标签: extjs extjs3

我有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');

1 个答案:

答案 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版本的概念或多或少都应该相同。