2011-07-29 8 views
0

私のExtJS 4コントローラでは、ページ上の特定の要素のイベントを捕捉できます。例えば 、私にできるメニュー項目のクリックをcatcheする:ExtJs 4の(MVC)コントローラからツリーノードのクリックを捕まえる方法は?

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

私はツリーノードのクリックをキャッチするために同じことをどのように行うのですか?私はメニュー項目と同じ効果が欲しいです(ツリーにはsetstreeというIDがあります)。

編集:私は意図的によってitemClickリスナーをコメントアウト

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); 
      } 
    }*/ 
}); 

注:ここでは木のコードです。これは私がノードをクリックしたことを報告している間、私はコントローラでそれをキャッチすることを好む...

アイデア?

ありがとうございます!

+0

は参考になる:) –

+0

ライオネル、木コードが質問に追加。 – Harel

答えて

2

あなたは置くことができます:あなたは、あなたのツリーを構築するコードを共有することができれば、適切なコントローラで

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

+0

ありがとう!私はほとんどそれを持っていたが、 'itemclick'ではなく 'click'で試していた。私はコントローラにアクションを送信するメニュー項目と同様の動作を期待していましたが、モデルにプロパティ 'action'を追加してレコードから取得することでその動作を模倣しました。 – Harel

+0

@Harel、問題ありません。 –

関連する問題