2013-05-27 12 views
6

Ho un controller e voglio passare un valore stringa semplice alla vista successiva.Passare dati a un'altra vista dal controller e impostare il valore di un'etichetta in sencha touch

Per quello, sto creando la vista in questo modo.

 
    var nextView= Ext.create('MyApp.view.NextView',{ 
     content: 'value' 
    }); 
    Ext.Viewport.add(nextView); 
    Ext.Viewport.animateActiveItem(nextView,{type: 'slide', direction: 'left'}); 

Sulla NextView, ho un'etichetta, e voglio impostare la proprietà HTML dell'etichetta per il valore che sto passando dal controller. vale a dire. 'valore'.

mio NextView assomiglia a questo.

 
Ext.define('MyApp.view.NextView', { 
    extend: 'Ext.form.Panel', 
    config: { 
     content: 'null', 
     items: [ 
      { 
       xtype: 'label', 
       html: 'value' 
      } 
     ] 
    } 
}); 

Non so come procedere da qui. Non posso avere NextView come un modulo. Ho solo bisogno di passare un valore di stringa in questa situazione. Qual è il modo migliore per raggiungere questo obiettivo?

risposta

8

Usa initialize metodo per accedere ai dati di configurazione in questo modo:

Ext.define('MyApp.view.NextView', { 
    extend: 'Ext.form.Panel', 
    config: { 
     content: 'null', 
     items: [ 
      { 
       xtype: 'label', 
       html: 'value' 
      } 
     ] 
    }, 
    initialize : function(){ 
     this.callParent(); 
     var val = this.config.content; 
     this.down('label').setHtml(val); 
    } 
}); 

PS Sentitevi liberi di utilizzare il selettore preferito in down funzione

+0

Grazie. Che funzioni :) –

4

So che la questione è stata risolta. Ma ho appena trovato un modo abbastanza naturale per passare i dati dal controller a una vista (usando il costruttore della vista). Lo uso nella mia integrazione del desktop Web nella mia app.

Nel controllore, passare dati al costruttore della vista come segue:

loiTab = Ext.create('Iip.view.giips.admission.DetailedLoiTab', {closable: true, selectedLoiData: selected[0].data}); 

Nella vista, girare un costruttore come segue:

constructor: function(selectedLoiData) { 
    Ext.applyIf(this, selectedLoiData); 
    this.callParent(); 
}, 

Il seguente metodo vive nella stessa file come costruttore. Puoi accedere a SelectedLoiData da qualsiasi punto della vista in cui il costruttore vive come segue:

initComponent: function(){ 
    console.log(this.selectedLoiData); 
}