ExtJs 4.2 从扩展控制器访问变量

ExtJs 4.2 Access variable from extended Controller

我有两个这样的控制器:

控制器 1(主)

Ext.define('App.MainController', {
    extend: 'Ext.app.Controller',
    models:[
        //some_models
    ],
    stores:[
        //some_stores
    ],
    views: [
        //some_views
    ],
    refs: [],
    init: function() {
        this.TipoDetalle='';
        this.control({
            'GridConcursos':{
                itemdblclick:this.onDblClickRow
            }
        });
    },

    //some_code

    onDblClickRow:function(element, record, item, index, e, eOpts){
        this.TipoDetalle=record.data['tipo_concurso'];
    }

    //some_code
});

控制器 2(子控制器)

Ext.define('App.SubController', {
    extend: 'App.MainController',
    models:[
        //some_models
    ],
    stores:[
        //some_stores
    ],
    views: [
        //some_views
    ],
    refs: [],
    init: function() {
        this.control({
            'FichaDetalle':{
                beforeshow:this.onBeforeShow
            }
        });
    },

    //some code

    onBeforeShow:function(){
        //Some way to print the variable TipoDetalle from the main controller
    }
});

在第二个控制器上,在 onBeforeShow 函数中我想打印或显示来自第一个控制器 TipoDetalle 的变量,但我不知道这是否可能,如果可能我不知道如何获取第二个控制器中的变量

您可以使用以下语法:

<appname>.app.getController(<controller's full name>).<var name>

你的情况是

App.app.getController('App.MainController').TipoDetalle

确保在控制器中初始化 TipoDetalle 变量,如下所示:

Ext.define('App.MainController', { extend: 'Ext.app.Controller', TipoDetalle:'', ...