EXTJS 控制器视图自动生成的 getter



我正在开发一个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。

最新更新