2
function getModified(lineData) {

  var newObject = $.extend(true, {}, lineData);               
  newObject.Lines('test')

};

我已将可观察数组扩展到新变量 newObject 。但是,如果我更改 newObject 中的任何内容,更改也会反映到 LineData 。

简而言之,如何创建不会更新 lineData 的 lineData 可观察数组的深层副本。如果我修改 newObject.

4

1 回答 1

2
ko.utils.clone = function (obj) {
    var target = new obj.constructor();
    for (var prop in obj) {
        var propVal = obj[prop];
        if (ko.isObservable(propVal)) {
            var val = propVal();
            if ($.type(val) == 'object') {
                target[prop] = ko.utils.clone(val);
                continue;
            }
            target[prop](val);
        }
    }
    return target;
};

这是我的解决方案,希望对您有所帮助。

// obj is your viewModel object.
于 2014-10-28T03:32:08.380 回答