Model view controller 为什么不调用类的方法呢
我有一个TabContainer类。此类是Ext.tab.Panel的扩展。 create工作正常,但是当我尝试向实例Firebug发送消息时,它会说: “TypeError:tbbar.canAddTab不是函数” 课程为:Model view controller 为什么不调用类的方法呢,model-view-controller,extjs,tabs,extjs4,Model View Controller,Extjs,Tabs,Extjs4,我有一个TabContainer类。此类是Ext.tab.Panel的扩展。 create工作正常,但是当我尝试向实例Firebug发送消息时,它会说: “TypeError:tbbar.canAddTab不是函数” 课程为: Ext.define('KMA.view.environment.TabContainer',{ extend: 'Ext.tab.Panel', alias: 'widget.environmenttabcontainer', initComp
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);
}
});
在第一个“console.log”中,Firebug显示了TabContainer的实例,并显示了类的方法。但是,为什么不工作呢?。有什么想法吗?我猜它不起作用,因为
Ext.ComponentQuery.query
返回一个数组。
这项工作:
var t = new KMA.view.environment.TabContainer();
Ext.ComponentQuery.query('environmenttabcontainer')[0].canAddTab
> function (){
return (this.openTabs() < this.maxOpenTabs());
}
var t=new KMA.view.environment.TabContainer();
Ext.ComponentQuery.query('environmenttabcontainer')[0]。canAddTab
>函数(){
返回(this.openTabs()
您使用组件查询而不是直接引用有什么原因吗
var t = new KMA.view.environment.TabContainer();
Ext.ComponentQuery.query('environmenttabcontainer')[0].canAddTab
> function (){
return (this.openTabs() < this.maxOpenTabs());
}