2011-05-13 7 views
1

私は新しいMVCメソッドのアプローチを使用してextjs 4でアプリケーションを構築しようとしています。 私はユーザーが行をクリックし、編集がExt.windowで行われるグリッドを持っています。ExtJS 4 - MVCのビューから複数のストアにアクセスする方法は?

このExt.window with tabsは、コントローラ内でビューとして定義されています。私は2つの問題に問題があります:

  1. このウィンドウには2つのグリッドがあり、タブをクリックするとストアから取り込みたいと思います。グリッドの店を定義するとき、私のコントローラーで決められていてもアクセスすることはできません。 'グリッド'、 店舗:MyApp.store.Products 列:[..] ... しかし運、私は

    ... XTYPEを試してみました!

    Ext.define('MyApp.view.Edit', { 
        extend:'Ext.window.Window', 
        store:['Products','Countries'] 
    ... 
    

    も運:

はまた、ビューに複数の店舗を定義しようとしました。ビューに1つのストアしか定義されていない場合は、this.Countriesなどでアクセスできます。

2 ..私の2番目の質問は部分的に関連しています。 Ext.windowは、クリックされたグリッド行からのデータが入力されるフォームです。 Ext.windowフォームのグリッドの1つに、プッシュされたデータを挿入するにはどうすればよいですか?デフォルトでは空のストアがあり、そのTabclickにリスナーがあるはずですか?または、データオブジェクトをその中に押し込むことはできますか?

何か助けていただければ幸いです。ありがとう。 Andy

答えて

1

あなたの最初の質問に答えるには、コントローラ内の店舗を参照する必要があります。あなたのコントローラでこれを行うことができます

stores : ['Products', 'Countries'], 

models : ['Products', 'Countries'], 

refs: [ 
    {ref: 'mytabpanel', selector: 'mytabs'} 
], 

init: function() { 
    this.control({ 
     'mytabs': { 
      tabchange  : this.loadTabData 
     }, 

    //create a onProductsStoreLoad method to handle stuff 
    this.getProductsStore().on({ 
     scope: this, 
     load : this.onProductsStoreLoad 
    }); 


loadTabData: function() { 
    var activeTab = this.getMytabpanel().getActiveTab(); 
    //Do whatever you need 
} 
+0

ありがとう。論理部分は実際にコントローラに行く必要があります。 – Andrea

関連する問題