我正在尝试将一个可观察数组复制到另一个可观察数组。我有一个表单,其中包含帐单地址、送货地址和复选框,单击该复选框后,用户可以将所有送货信息复制到帐单地址。我遇到的问题是,当我将一个可观察数组复制到另一个时,每当我对任一可观察数组进行更改时,两个可观察数组都会更新。我想将两个可观察的数组值分开,只需将值从一个复制到另一个即可。
我的可观察数组是使用 mapping plugin 设置的:
self.billingAddress = ko.mapping.fromJS(InitialEmptyAddressModel);
self.shippingAddress = ko.mapping.fromJS(InitialEmptyAddressModel);
然后,在输入送货信息并单击“使用送货地址”后,将送货信息复制到帐单:
self.CopyAddress = function() {
self.billingAddress(self.shippingAddress());
}
我还尝试过以下方法: What is the best way of cloning/copying an observablearray in knockoutJS?
如有任何帮助,我们将不胜感激,谢谢。
最佳答案
您并不真的想复制 shippingAddress
内的可观察量。您可能希望获得它的干净版本,然后将其应用到其他映射对象。
类似于:
self.copyAddress = function() {
var clean = ko.mapping.toJS(self.shippingAddress);
ko.mapping.fromJS(clean, self.billingAddress);
};
关于javascript - knockout 复制可观察数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824979/