1

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

4

1 回答 1

2

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

于 2012-09-27T13:16:10.713 回答