Extjs存储深度克隆问题

时间:2015-05-19 12:45:53

标签: jquery extjs clone extjs-stores

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

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

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

        }

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

假设商店包含多个记录&每条记录都有一个名称为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

这意味着数据和数据2都指向相同的参考。我不知道如何解决这个问题。我试图使用jQuery.extend(true, {}, data)深度克隆记录,但即使这样也无效

1 个答案:

答案 0 :(得分:0)

您可以使用Ext.clone

var data2 = Ext.clone(data);

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