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:'',
...
我有两个这样的控制器:
控制器 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:'',
...