2015-05-19 98 views
0

我有一個商店。在商店的加載活動中,我正在做這樣的事情。Extjs存儲深層克隆問題

'load': function (store, rec, success, options) { 

      var data = store.getRange(); 
      var data2 = store.getRange(); 

     } 

如果我說data == data2,我得到false。這意味着datadata2不指向相同的參考位置。

假設商店conatins多個記錄&,每個記錄由默認情況下

設置爲false此時名字IsUpdated的屬性,如果我說console.log(data[0].data.IsUpdated) & console.log(data2[0].data.IsUpdated)都返回false(這是正確的)。

現在。如果我說data[0].data.IsUpdated = true &然後運行console.log(data[0].data.IsUpdated) & console.log(data2[0].data.IsUpdated)都返回true

這意味着data和data2都指向相同的引用。我不知道如何解決這個問題。我一直在使用jQuery.extend(true, {}, data)試圖深克隆的記錄,但即使這是行不通的

回答

0

您可以使用Ext.clone

var data2 = Ext.clone(data); 

這樣一來,當你設置data[0].data.IsUpdated = true,在數據2 data2[0].data.IsUpdated將保持假。