我正在尝试将一个可观察数组复制到另一个可观察数组。我有一个表单,其中包含帐单邮寄地址,送货地址和复选框,点击该复选框后,用户可以将所有送货信息复制到其帐单邮寄地址。我遇到的问题是当我将一个可观察数组复制到另一个时,然后每当我对observable进行更改时,两个可观察数组都会更新。我想保持两个可观察的数组值分开,只需将值从一个复制到另一个。
我的可观察数组是使用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?
任何帮助将不胜感激,谢谢。
答案 0 :(得分:2)
你真的不想复制shippingAddress
内的观察者。您可能希望获得它的干净版本,然后将其应用于其他映射对象。
类似的东西:
self.copyAddress = function() {
var clean = ko.mapping.toJS(self.shippingAddress);
ko.mapping.fromJS(clean, self.billingAddress);
};