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

ExtJs 4.2 Access variable from extended Controller

本文关键字:控制器 访问 变量 扩展 ExtJs      更新时间:2023-09-26

我有两个这样的控制器:

控制器1(MAIN)

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:'', ...