如何在没有引用的情况下将值从 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 .
更新
最佳答案
这个呢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)
关于javascript - KnockoutJS - 在没有引用的情况下传递可观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36076402/