2013-08-01 26 views
0

我有一個商店和localStorage的代理。該商店已連接到網格面板。在網格面板的工具欄中有一個按鈕「全部刪除」。該按鈕連接到控制器動作如下:的Ext JS 4.0.7存儲與localStorage的代理

var store = Ext.getStore("Conflicts"); 

    console.log(store); 
    store.load({ 
     callback: function(){ 
      console.log(store); 
       store.removeAll(); 
       store.sync(); 
      console.log(store); 
     } 
    }); 

    console.log(store); 

正如你可以看到我加了一些的console.log(),看看有什麼在商店。我的問題是從一開始(第一個console.log())Store中沒有數據。但不管怎麼說,在我的網格我看到約170項,這是在店裏點擊他們從電網中消失removve按鈕後,但如果我刷新頁面,他們又在那裏。 我也有自動加載和自動同步屬性設置爲true。 console.log()的輸出始終保持不變。我嘗試了使用和不使用store.load(),但商店中總是沒有數據將被清空。

感謝您的任何幫助。

+0

我讀過這個問題幾次,但我現在還不能確定你的問題是什麼?提供的代碼顯示在加載時從商店中刪除所有記錄......您究竟想要達到什麼目的? –

+0

我只是想清除整個商店。我加載了加載函數以確保所有記錄,我想刪除都加載,但仍然遇到麻煩。克里斯托弗斯的回答在某種程度上對我有所幫助,但我仍然遇到了一些麻煩,你可以在下面的評論中看到答案。 – user1396236

回答

0

的store.removeAll()被稱爲是沒有真正消除記錄,但只清除店。要小心,這種行爲與later versions

您可以使用,而不是改變:

var store = Ext.getStore("Conflicts"); 

console.log(store); 
store.load({ 
    callback: function(){ 
     console.log(store); 
     store.remove(store.getRange()); 
     store.sync(); 
     console.log(store); 
    } 
}); 

console.log(store); 
+0

這工作正常從商店刪除所有銷售實物,這就是好的。但是,如果我重新加載頁面,它不再工作。我得到的螢火錯誤「類型錯誤:id爲未定義 如果(id.isModel){」我注意到通過尋找與螢火記錄是internalId是重新加載頁面之前像「EXT-記錄-230」和重裝後僅「230 」。有任何想法嗎? – user1396236

+0

也許也有趣,如果我在slite manager中打開webappsstore2表我看到extjs使用「undefined-(number)」作爲鍵,也許在那裏我已經做了一個模糊處理,以便extjs保存爲undefined? – user1396236

+0

在你的例外上堆棧跟蹤。我認爲你正在對已經刪除的記錄進行一些無效操作。 – Christoph