1. 程式人生 > >extjs中store的reload事件非同步問題解決

extjs中store的reload事件非同步問題解決

問題:

store0.reload({params:{start:0, limit:10}});

 alert(store0.getCount());
 alert(store0.getAt(0).get('value1'))
觀察store0.getCount()的值,
好像沒有reload(或load)成功。其實reload確實成功了。由於store.reload(或store.load)其實是個非同步方法,由於採用了非同步載入,因此該方法執行完畢後,資料不是按照reload()(或load())方法下一個語句的順序可以獲取得到的。reload之後的結果不能在reload函式後馬上顯示。
如果需要改變這種方法,那麼應該將store.getCount放在load的callback中。

解決方法:

store0.reload({params:{start:0, limit:10},
  callback : function() {

           alert(store0.getCount());
          alert(store0.getAt(0).get('value1'))
       }});

這樣使用callback就可以取到store0重新載入後的最新值。