我正在开发一个Extjs应用程序。这是我的控制器之一
Ext.define('ACP.controller.CodeTabs', {
extend: 'Ext.app.Controller',
/*
views: [
'CodeTabs'
],
*/
refs: [
{
ref: 'codetabs',
selector: 'codetabs',
}
],
init: function() {
this.application.on({
addtab: this.addTab,
closetab: this.closeTab,
});
},
addTab: function() {
var tabs = this.getCodetabs();
tabs.add(
{
title: 'New tab',
iconCls: 'tabs',
html: 'VICTORY',
}
).show();
},
closeTab: function() {
alert("closetab");
},
});
以下是相关视图:
Ext.define('ACP.view.CodeTabs', {
extend: 'Ext.tab.Panel',
alias: 'widget.codetabs',
layout: 'fit',
items: [
{
title: 'Test',
html: 'HELLO ASLAN'
}
],
});
问题是getter this.getCodetabs()是未定义的。它不应该由参考自动生成吗?我做错了什么?
这是我的申请:http://atomcodepad.com/acp您可以尝试单击"添加选项卡"按钮以查看我的问题正在发生。
您属于应用程序的范围,而不是定义 ref 的控制器。 使用 getController(name) 方法获取对控制器的引用,从那里定义您的 getter。