如何在没有引用的情况下将值从observable传递给observableArray? 任何想法。
问题
我的问题是当我将值推送到multiple
时我希望该值应该只有3.但是当我更新single
以清除所有值时,multiple
值也会更新。
var self = {};
self.multiple = ko.observableArray();
self.single = ko.observableArray();
self.single.push(3);
self.multiple.push(self.single());
self.single([]);
console.log(ko.toJS(self.multiple));
ko.applyBindings(self)
请参阅fiddle。
更新
答案 0 :(得分:2)
这个solution(JSON.stringify
创建对象的字符串表示然后JSON.parse
然后恢复它,但引用丢失了:
var self = {};
self.multiple = ko.observableArray();
self.single = ko.observableArray();
self.single.push(3);
//only this row was changed
self.multiple.push(JSON.parse(JSON.stringify(self.single())));
self.single.push(2);
console.log(ko.toJS(self.multiple));
ko.applyBindings(self)