2011-12-02 1 views
5

ストアの一意のインスタンスを作成し、ビューに割り当てるにはどうすればいいですか?(必要な場合は、一意のビューやコントローラを作成しても構いません)Ext JS 4 - 複数のストアインスタンスを作成してビューに割り当てる方法(MVC)

単純な使用例 - (同じタイプの)複数のグリッドを、それぞれのストアのレコードのリストで開きたいとします。

私はこれを試しましたが、動作しません、グリッドは描画されません:

各グリッドは、独自のストアインスタンスを持っている必要がありますそれは自分自身のレコードのリスト、
var theView = Ext.create('App.view.encounter.List'); 
    theView.title = 'WORC Encounters'; 
    var theStore=Ext.create('App.store.Encounters'); 
    theView.store=theStore; 
    tabhost.add({title:'WORC',items:theView}); 

    var theView = Ext.create('App.view.encounter.List'); 
    theView.title = 'NC Encounters'; 
    var theStore2=Ext.create('App.store.Encounters'); 
    theView.store=theStore2; 
    tabhost.add({title:'NC',items:theView}); 
+0

こんにちは:特定あなた例えば

//Create the store var theStore = Ext.create('App.store.Encounters'); //Create the view var theView = Ext.create('App.view.encounter.List', { store: theStore }); 

編集:

Ext.define('classname', { extend: 'Ext.grid.Panel', //... initComponent: function() { var me = this; var theStore = Ext.create('App.store.Encounters'); Ext.apply(me, { store: theStore }); me.callParent(); } //... }); 

あなたは、このようにそれを行うこともできます。あなたはこれに対する答えを見つけましたか? – Shekhar

+0

いいえ、残念なことに、これと他のいくつかの理由で、私はextjs開発を保留にして、別のプラットフォーム(非jsベース)を使用しています。 –

+0

答えを受け入れる。 –

答えて

3

コンポーネントの初期化時(またはその前)にストアを割り当てる必要があります。 initComponent内にあります。でも、私は似たような状況にいる、

var theStore = Ext.create('App.store.Encounters'); 
var theView = Ext.create('App.view.encounter.List', { 
     title: 'WORC Encounters', 
     store: theStore 
}); 
tabhost.add({title:'WORC',items:theView}); 


var theStore2=Ext.create('App.store.Encounters'); 
var theView2 = Ext.create('App.view.encounter.List', { 
     title: 'NC Encounters', 
     store: theStore2 
}); 
tabhost.add({title:'NC',items:theView2}); 
+0

私は1店舗を見るので、2番目はどこですか? –

+0

2番目のストアを他のビューに定義するだけで、同じ方法で作業できます。同じビュー内に2番目のストアを定義することはありません... –

+0

これは私の理解に役立つように、コードと私の違いは「Ext.apply」なのでしょうか? –

関連する問題