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

时间:2012-09-27 12:47:21

标签: controller extjs extjs4.1 getter refs

我正在开发一个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”按钮以查看我的问题。

1 个答案:

答案 0 :(得分:2)

您在应用程序的范围内,而不是定义了ref的Controller。使用getController(name)方法获取对控制器的引用,从那里定义getter。