2015-05-19 75 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将保持假。