0

ExtJS 4コントローラーでは、ページ上の特定の要素のイベントをキャッチできます。たとえば、メニュー項目のクリックをキャッチするには、次のようにします。

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

ツリーノードのクリックをキャッチするために同じことを行うにはどうすればよいですか?メニュー項目とほぼ同じ効果が必要です(ツリーにはsettingstreeの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リスナーを意図的にコメントアウトしたことに注意してください。これはクリックされたすべてのノードについて報告しますが、私はコントローラーでそれをキャッチすることを好みます...

何か案は?

ありがとう!

4

1 に答える 1

2

あなたが置くことができます:

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

適切なコントローラーで

于 2011-07-29T12:18:01.487 に答える