0

我正在尝试将一个可观察数组复制到另一个可观察数组。我有一个包含帐单地址、送货地址和复选框的表单,单击该复选框后,用户可以将所有送货信息复制到他们的帐单地址。我遇到的问题是,当我将一个可观察数组复制到另一个时,每当我对任一可观察数组进行更改时,两个可观察数组都会更新。我想将两个可观察的数组值分开,只需将值从一个复制到另一个。

我的可观察数组是使用映射插件设置的:

self.billingAddress = ko.mapping.fromJS(InitialEmptyAddressModel);
self.shippingAddress = ko.mapping.fromJS(InitialEmptyAddressModel);

然后在输入送货信息并点击“使用送货地址”后将送货信息复制到帐单:

 self.CopyAddress = function() {
    self.billingAddress(self.shippingAddress());
    }

我还尝试了以下方法: 在 knockoutJS 中克隆/复制 observablearray 的最佳方法是什么?

任何帮助将不胜感激,谢谢。

4

1 回答 1

2

你真的不想复制里面的 observables shippingAddress。您可能希望获得它的干净版本,然后将其应用于其他映射对象。

就像是:

self.copyAddress = function() {
    var clean = ko.mapping.toJS(self.shippingAddress);
    ko.mapping.fromJS(clean, self.billingAddress);
};

示例:http: //jsfiddle.net/rniemeyer/NdS5M/

于 2012-10-10T17:58:17.857 回答