【问题标题】:ExtJs 4.2 Access variable from extended ControllerExtJs 4.2 从扩展控制器访问变量
【发布时间】:2016-08-01 11:43:15
【问题描述】:

我有两个这样的控制器:

控制器 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 的变量,但我不知道这是否可能,如果可能,我不知道如何获取第二个控制器中的变量

【问题讨论】:

    标签: javascript extjs extjs4.2


    【解决方案1】:

    您可以使用以下语法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多