2012-08-24 71 views
1

遇到問題並且不確定如何繼續調試。發現一個問題,看起來非常像我,但是該解決方案不起作用:How to catch tree node clicks from a (MVC) controller in ExtJs 4?ExtJS 4.1控制器處理樹節點單擊事件

唯一的區別我可以在問題之間看到和我的是,我的樹作爲原料,xtype項目對象直接創建我的佈局中treepanel這是一個單獨創建的地方。

這裏是我的控制器:

Ext.define("IOL.controller.app.AppLayout", { 
    extend: 'Ext.app.Controller', 
    init: function() { 
     this.control({ 
      'app toolbar > button[itemId=filter]' : { 
       click: this.onFilter 
      }, 
      'menuTree': { 
       itemclick: this.onFilter 
      } 
     }); 
    }, 

    onFilter: function(btn) { 
     alert('test'); 
     Ext.create('IOL.view.app.Home').show(); 
    } 

}); 

這裏是我的觀點相關的項目:

{ 
     xtype: 'treepanel', 
     title: 'Navigation', 
     split: true, 
     collapsible: true, 
     margins: '5 0 5 5', 
     region: 'west', 
     width: 170, 
     id: 'menuTree', 
     alias: 'widget.menuTree', 
     store: Ext.create('IOL.store.app.AppNav'), 
     useArrows: true, 
     rootVisible: false 
     /*listeners : { 
      itemdblclick : function(view,rec,item,index,eventObj) { 

       console.log(view); 
       console.log(rec); 
       console.log(item); 
       console.log(index); 
       console.log(eventObj); 
       if(rec.get('leaf') == true){ 
        Ext.ComponentQuery.query('tabpanel')[0].add({ 
         xtype: 'panel', 
         title: rec.get('text'), 
         itemId: rec.get('id'), 
         //url: 'server/HomeTab/read.php', 
         html : 'test content name: ' + rec.get('id'), 
         closable : true 
        }); 
       } 

      } 
     }*/ 
    } 

app toolbar > button[itemId=filter]作品的按鈕控制,但分配相同的動作到「menuTree」不起作用。瀏覽器控制檯帶回Ext.getCmp('menuTree')有效的對象,所以我迷失了爲什麼控制器似乎沒有在樹上作用。

樹正在從商店加載,這讓我想知道這是否與在jQuery中需要使用.on('click')而不是.click()類似的場景...幾乎就像控制器沒有看到樹(但看到在同一視圖中的按鈕?)。我故意直接在樹上註釋掉處理程序(它可以工作)。

可以提供所有文件,如果它會幫助。

回答

4

Ext.getCmp()返回組件id,而控制器使用Ext.ComponentQuery.query()語法查找它們的組件;所以你試圖用xtype menuTree來控制一個不存在的組件。您應該使用'#menuTree'或'treepanel'作爲您的選擇器。

+0

太棒了!由於某種原因,使用'treepanel'仍然不起作用,但#menuTree的工作就像一個魅力。沒有意識到這是控制器允許的。謝謝! – chrisboustead

+0

閱讀[Ext.ComponentQuery](http://docs.sencha.com/ext-js/4-1/#!/api/Ext.ComponentQuery),它值得和更多。 –