2011-07-29 75 views
0

在我的ExtJS 4控制器中,我可以捕獲頁面上某些元素的事件。 例如,catche菜單項點擊我可以這樣做:如何從ExtJs 4中的(MVC)控制器捕獲樹節點點擊?

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在聽衆。雖然這確實報告我在ll節點擊,我更喜歡趕上控制器,因爲我應該...

任何想法?

謝謝!

+0

將是有益的,如果你可以分享,你建立你的樹:) –

+0

梅西的代碼,代碼樹加質疑。 – Harel

回答

2

你可以把:

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

在適當的控制器

+0

謝謝!我差點拿到了,但是用'click'代替'itemclick'。我希望得到一個類似於菜單項的行爲,將行爲發送給控制器,但我通過向模型添加屬性「操作」並從記錄中獲取該行爲來模擬此行爲。 – Harel

+0

@衣服,沒問題。 –