0

我有一家商店。在商店的加载事件中,我正在做这样的事情。

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

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

        }

如果我说data == data2,我得到false。这意味着data并且data2不指向相同的参考位置。

假设商店包含多条记录,并且每条记录都有一个按名称IsUpdated设置的属性false,默认情况下设置为

在这一点上,如果我说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)但即使这样也不起作用

4

1 回答 1

0

您可以使用Ext.clone

var data2 = Ext.clone(data);

这样,当您设置时data[0].data.IsUpdated = true,data2 中的 ,data2[0].data.IsUpdated​​ 将保持为 false。

于 2015-05-21T10:21:36.450 回答