【发布时间】:2015-05-26 09:46:27
【问题描述】:
我的情况如下: 我有 3 个按钮,单击时我正在调用加载对象数组的函数。 该数组用于为其中的每个对象创建表。 表格行包含绑定到相应对象的用户名、用户类型和复选框。 绑定如下
data-bind="checkedValue: $data, checked: $root.selectedRecipients"
$data 包含正确的值,这些值作为对象传递给 selectedRecipients observableArray。
我的问题是,每当我按下按钮时,都会使用新的复选框重新创建表格,但如果 selectedRecipients 仍然包含相同的值,则不会检查它们。如果我选中复选框,则会将重复值添加到数组中。
问题:我应该怎么做才能让那些新的复选框从可观察数组中获取数据?我有什么选择
更新: 我最好的猜测是,当服务器使用对象提取新数据时,它们被认为是不同的。那么我应该为ko的checked创建自定义绑定,让它根据对象值而不是对象本身来比较事物吗?
【问题讨论】:
-
据我了解,当再次创建列表时,这些对象被认为与数组中的对象不同,即使它们的数据和源相同。我应该进行自定义绑定还是什么?
-
您是否可以创建一个解决问题的jsfiddle。
-
当服务器汇集数据时,您可能需要循环遍历并匹配 id 以选择项目,因为对象可能不同。
-
请出示
selectedRecipients的代码,以及任何相关代码,以便能够了解您的问题。如果我们看不到 "something",就不可能知道为什么 "something" 不起作用。
标签: knockout.js