0

我有一个用于编辑提供者记录的表格。提供者记录与多个地址有关系,因此提供者可以有家庭、办公室、假期等地址类型。

来自服务器的 json 地址对象只带来了提供者拥有的地址,所以如果提供者只有一个“假期”类型的地址,那么这是唯一的记录,但在编辑表单中我必须拥有所有地址类型以编辑现有的或添加新的。

我不知道我的方法是否合适,但我的表单中有一个“jsonBaseAddresses”,其中包含所有可能的地址类型,并且该对象使用 Knockout 绑定到表单(这实际上有效),所以我想合并“jsonRemoteAddress " 与 "jsonBaseAddresses" 以使 "jsonBaseAddresses" 但与远程 json 对象中的数据合并。

同样,我不知道这是否是正确的方法。感谢任何帮助。这是我想做的一个 jsFiddle 示例。

http://jsfiddle.net/HJrGf/4/

谢谢

4

1 回答 1

1

为什么不遍历远程地址并将它们推送到视图模型中的地址,例如?

var vm = new App(jsonBaseAddresses );
for ( var i = 0; i < jsonRemoteAddresses.length; i++){
vm.addresses.push(new Address(jsonRemoteAddresses[i]);
}

等等 ...

要合并地址,您可以使用以下解决方案:

  1. 您可以将属性引入地址,如 Equals,并比较标识唯一地址的字段

  2. 选择这篇文章中的任何实现如何确定两个 JavaScript 对象的相等性? 获取地址哈希码并在上面的循环中比较要合并的地址的哈希码。我在我的一个项目中使用了这个解决方案。并且还要检查这个http://documentcloud.github.com/underscore/#isEqual

于 2012-07-12T18:04:31.600 回答