如何从ExtJs 4中的(MVC)控制器捕获树节点点击?

时间:2011-07-29 09:45:10

标签: javascript extjs extjs4 extjs-mvc

在我的ExtJS 4控制器中,我可以捕获页面上某些元素的事件。 例如,要点击菜单项,我可以执行以下操作:

init: function() { 
    this.control({
        'maintoolbar menuitem[action=contacts]': {
            click: function() {
                                // do something ;
                            }
                    }
            }).......

如何捕获树节点点击?我非常想要与菜单项相同的效果(树具有setupstree的id)。

编辑:这是树代码:

Ext.define('MyApp.view.system.SettingsTree',{
    extend: 'Ext.tree.Panel',
    requires: [ 
            'Ext.data.TreeStore',
            'MyApp.store.SettingsTree',
    ],
    title: MyApp.locale.T('settings'),
    defaults: {
            expanded:true
    }, 
    id:'settingstree',
    store: Ext.create('MyApp.store.SettingsTree'),
    alias: 'widget.settingstree',
    rootVisible: false,
    useArrows: true,
    /*listeners: {
            itemclick: function(view, record, el, index, ev, options ) {
                    console.log(arguments);
            }
    }*/
 });

请注意,我故意注释掉了itemclick侦听器。虽然这确实报告我点击的ll节点,但我更喜欢在控制器中捕获它,因为我应该......

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你可以把:

this.control({
        'settingstree': {
            itemclick: function() {
                                // do something ;
                            }
                    }
            })

在适当的控制器中