2013-05-27 6 views
6

コントローラがあり、単純な文字列値を次のビューに渡したいと思います。コントローラから別のビューにデータを渡して、sencha touchでラベルの値を設定する

これについては、このようなビューを作成しています。 NextView

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

、私はラベルを持っている、と私は、コントローラから渡していた値にラベルのHTMLプロパティを設定します。すなわち、 '値'。

My NextViewはこのようになります。

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

ここから進める方法がわかりません。私はフォームとしてNextViewを持つことはできません。この状況では、文字列値を1つだけ渡す必要があります。これを達成する最良の方法は何ですか?

答えて

8

使用このような設定データにアクセスするためのinitialize方法:

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

PSdown機能に

+0

ありがとうございます。それは動作します:) –

4

をお好みのセレクタを使用すること自由に感じ、私は質問が回答されている知っています。しかし、私はちょうどコントローラからビューへのデータを渡すかなり自然な方法を(ビューのコンストラクタを使用して)掘り下げました。私は私のアプリにWebデスクトップを統合する際にこれを使用します。コントローラで

、以下のようにビューのコンストラクタにデータを渡す:鑑み

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

を、以下のようにコンストラクタをスピンアップ:

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

以下の方法が同じに住んファイルをコンストラクタとして返します。 selectedLoiDataには、コンストラクターが存在するビューのどこからでもアクセスできます。

initComponent: function(){ 
    console.log(this.selectedLoiData); 
} 
関連する問題