javascript - knockout 复制可观察数组问题

标签 javascript asp.net-mvc-3 knockout.js knockout-mapping-plugin ko.observablearray

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

我的可观察数组是使用 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);
};

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

关于javascript - knockout 复制可观察数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824979/

相关文章:

javascript - 无法在 Node.js 应用程序中提供样式表

javascript - Javascript 中的正则表达式没有它应该的那么贪婪?

javascript - 如何使用 jQuery 数据表插件

javascript - 将动态值传递给 valums 上传中的其他参数

javascript - 仅订阅新条目或已删除条目的可观察数组

javascript - 使用 UserAgent 检测浏览器

javascript - AngularJS 1.x 应用程序的 webpack 2 的最佳 webpack.config?

asp.net-mvc-3 - 如何将数据从 Razor View 传递到 mvc3 中的 Controller ?

knockout.js - 使用 knockoutjs 显示层次结构(树)

javascript - 当我们点击它时,轮播所选项目会突出显示(使用 jQuery)