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& then run 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と、data2data2[0].data.IsUpdatedは false のままになります。

于 2015-05-21T10:21:36.450 に答える