2013-03-28 246 views
0

我有一個TabContainer類。這個類是Ext.tab.Panel的擴展。 的創建工作正常,但是,當我嘗試將消息發送到實例螢火蟲說:爲什麼不調用類的方法

"TypeError: tbbar.canAddTab is not a function"

類是:

Ext.define('KMA.view.environment.TabContainer',{ 
    extend: 'Ext.tab.Panel', 
    alias: 'widget.environmenttabcontainer', 

    initComponent: function(){ 
     [...] 
     this.callParent(arguments); 
    }, 
    createTab: function(aTitle,aToolTip,anItem){ 
     return { 
      title: aTitle, 
      itemId: aTitle + "Tag", 
      tabconfig: { 
       title: aTitle, 
       tooltip: aToolTip, 
       items: anItem 
      }  
     }; 
    }, 
    openTabs: function(){ 
     return this.getItems().length; 
    }, 
    maxOpenTabs: function(){ 
     return 7; 
    }, 
    canAddTab: function(){ 
     return (this.openTabs() < this.maxOpenTabs()); 
    }, 
    addTab: function(aTabCfg){ 
     this.add(aTabCfg); 
    } 
}); 

我的示例代碼:

var tbbar = Ext.ComponentQuery.query('environmenttabcontainer'); 
console.log(tbbar); 
console.log(tbbar.canAddTab()); 

在第一個「console.log」Firebugs顯示了TabContainer的實例,並顯示了該類的方法。但是,爲什麼不工作?任何想法 ?

回答

2

我猜測它不工作,因爲Ext.ComponentQuery.query返回一個數組。 這工作:

var t = new KMA.view.environment.TabContainer(); 
Ext.ComponentQuery.query('environmenttabcontainer')[0].canAddTab 
> function(){ 
     return (this.openTabs() < this.maxOpenTabs()); 
    } 

是否有一個原因,您使用的是組件查詢,而不是具有直接的參考?

相關問題