我正在开发一个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()未定义。它不应该由refs自动生成吗?我做错了什么?
以下是我的申请:http://atomcodepad.com/acp 您可以尝试单击“addtab”按钮以查看我的问题。
答案 0 :(得分:2)
您在应用程序的范围内,而不是定义了ref的Controller。使用getController(name)方法获取对控制器的引用,从那里定义getter。