2016-08-01 13 views
1

Ich habe zwei Controllern wie folgt aus:ExtJs 4.2 Zugang Variable von erweiterten Steuer

Regler 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 
}); 

Controller 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 
    } 
}); 

Auf dem zweiten Controller möchte ich in der Funktion onBeforeShow die Variable aus dem ersten Con drucken oder anzeigen Troller TipoDetalle, aber ich weiß nicht, ob es möglich ist, und wenn es möglich ist, ich weiß nicht, wie die Variable in dem zweiten Controller zu bekommen

Antwort

2

Sie diese Syntax verwenden:

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

in Ihrem Fall wäre es

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

Stellen Sie sicher sein, das Sie TipoDetalle Variable in der Steuerung wie unten initialisieren:

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

+0

Es funktioniert, vielen Dank für die Hilfe – SensacionRC