1

Extjsアプリを開発しています。これが私のコントローラーの1つです

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'
    }
],
});

問題は、ゲッターthis.getCodetabs()が未定義であるということです。refsによって自動生成されるはずではありませんか?私は何を間違っているのですか?

これが私のアプリケーションです:http : //atomcodepad.com/acp「addtab」ボタンをクリックして、問題が発生していることを確認できます。

4

1 に答える 1

2

refが定義されているコントローラーではなく、アプリケーションのスコープ内にいます。getController(name)メソッドを使用してコントローラーへの参照を取得し、そこからゲッターを定義します。

于 2012-09-27T13:16:10.713 に答える