2017-01-12 4 views
0

レンダリング機能でストアが作成され、1つのコールが起動されますが、条件付きでコールする必要がありますが、ストアインスタンスは常に作成する必要があります。私は、機能をレンダリングでストアを作成するために、次のコードを使用してストアが作成されるときにファイアコールを制限する方法

Ext.create('mypage.store.customTreeGridStore', { 
    storeId: 'myStore', 
    proxy: { 
     type: 'rest', 
     startParam: undefined, 
     filterParam: undefined, 
     sortParam: undefined, 
     paramsAsJson: true, 
     limitParam: 'pageSize', 
     pageParam: 'pageNo', 
     restService: 'rest', 
     restOperation: 'getOperation', 
     url: me.urlparams, 
     autoLoad: true, 

     actionMethods: { 
      read: 'POST' 
     } 
    } 
}); 

とページは、私がbeforeLoadブールフラグを得ることができるロードされたとき、私は店に

beforeload: function(store, operation, eOpts) { 
    return booleanFlag; 
} 

をリスナーを追加しています。この要件については

falseとページリフレッシュコールが発生していないが、Storeインスタンスが正常に作成された間に、 が、私はグリッドレコードを検索しているテキストボックスを持っています。私がテキストボックス内のテキストを検索しているときに、グリッドにレコードを取得できませんでした。

しかし、一度booleanFlagがtrueになると、結果をグリッドで正常に検索できます。だから、この問題を解決する最善の方法は何ですか?

答えて

0

ストアでautoLoadがtrueに設定されており、ストアが常に自動的にロードされないようにするには、beforeloadイベントを使用してautoLoadを停止します。この評価は正しいですか?

どの程度、代わりに

Ext.create('mypage.store.customTreeGridStore', { 
    proxy:{ 
     autoLoad: true, 
    }, 
    listeners:{ 
     beforeload: function(store, operation, eOpts) { 
      return booleanFlag; 
     } 
    } 
}) 

の自動ロードを削除し、必要な場合にのみ、作成後に店をロードしますか?

var store = Ext.create('mypage.store.customTreeGridStore', { 
    proxy:{ 
     autoLoad: false, 
    } 
}); 
if(booleanFlag) store.load(); 
+1

プロキシで_autoLoad_ configが指定されているのはなぜですか?それは店の設定ではありませんか? – scebotari66

関連する問題