2013-03-27 52 views
6

我打開我的商店如下:EXTJS存儲負載回調問題

store.load({ 
     params:{paramMap}, 
     callback : function(records, options, success) { 
      if (success) { 
       var form = formPanel.getForm(); 
       var jsonStr = Ext.JSON.encode(records[0].raw); 
       var jsonObj = Ext.JSON.decode(jsonStr); 
       form.loadRecord(jsonObj); 
      } 
     } 
    }); 

的事情是我只希望這回叫火首次商店被加載。我想在此之後刪除它,這樣當我重新加載或再次加載商店時,它不會再次調用此回調。

任何想法,我試着在選項配置中得到回調,但似乎並沒有工作。

回答

14

不完全確定是什麼問題。回調只會在商店加載回調時被調用。

store.load({callback:myCallback}); 
//callback will be called 
store.load(); 
//callback will not be called 

如果你想只是想做一些事情,你可能想使用一個單一設置爲true的偵聽器。聽衆而不是回叫是我的首選方式。

store.on('load', onStoreLoad, this, {single:true}); 

回調函數參數api與加載偵聽器略有不同,請檢查文檔以查看。

+0

你是對的。我在商店裏放置了一個beforeload監聽器後意識到了。我實際上正在調用reload,它使用與包含我的回調的原始調用相同的參數。所以我把它切換到調用加載。謝謝 – codemonkeyww 2013-03-27 19:06:49

+0

您可能還需要在第一個調用中通過範圍: store.load({callback:myCallback,scope:this}); – 2014-04-29 22:54:47