gpt4 book ai didi

javascript - KnockoutJS - 在没有引用的情况下传递可观察值

转载 作者:行者123 更新时间:2023-11-30 16:12:15 26 4
gpt4 key购买 nike

如何在没有引用的情况下将值从 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 .

更新

复制数组值的另一种方法是使用 .slice()。看另一个问题here和一个 demo here .

最佳答案

这个呢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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com