我有两个像这样的控制器:
控制器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(SUB CONTROLLER)
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的变量,但我不知道是否可能,如果有可能我不知道如何获取第二个控制器中的变量
答案 0 :(得分:2)
您可以使用以下语法:
<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:'',
...