function getModified(lineData) {
var newObject = $.extend(true, {}, lineData);
newObject.Lines('test')
};
我已将可观察数组扩展为新变量newObject。但是,如果我在newObject中更改任何内容,则更改也会反映到LineData。
简而言之,如何创建不会更新lineData的lineData observable数组的深层副本。如果我修改newObject。
答案 0 :(得分: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.