По принцип това, което прочетох и използвах досега за клониране на масив без никакви препратки между тях, е нещо подобно:
var clonedArray = ko.observableArray(originalArray().slice(0));
Но в следния пример изглежда не работи:
var field = function(settings){
var _self = this;
_self.Id = settings.Id;
_self.Flag = ko.observable(settings.Flag);
return _self;
};
var viewModel = function(){
var _vm = this;
_vm.fields = ko.observableArray([
new field({Id: 1, Flag: true}),
new field({Id: 2, Flag: false})
]);
_vm.fieldsCloned = ko.observableArray(_vm.fields().slice(0));
return _vm;
};
ko.applyBindings(new viewModel());