我有一系列复选框,它们都绑定(bind)到选定值的数组:
var myModel = {
// ...
workgroupsImpacted: ko.observableArray([])
};
在顶部,我有一个全选复选框。当选中“全选”复选框时,我运行以下代码:
var subGroups = $('#WorkgroupCB_' + parentId);
$(':input', subGroups).prop('checked', this.checked);
这会选中(或取消选中)相应的复选框控件。这在 UI 方面效果很好,但是绑定(bind)模型不会更新。换句话说,workgroupsImpacted
仍为空。
当我选中或取消选中一堆复选框时,是否有一种简单的方法来更新模型?或者,我是否必须循环遍历每个复选框,挖掘值,然后从模型的数组中手动添加或删除该值?我希望 Knockout.js 提供一个标准机制来轻松完成此操作。
最佳答案
在KnockoutJS
中,可观察数组
仅跟踪数组中的项目数量并报告更改(即添加/删除项目),但它不会保留跟踪该数组中对象的状态。
听起来您想要一个由可观察对象
组成的可观察数组
。您是否有一个代表列表中每个复选框
的模型对象?
这是一个fiddle显示可观察数组
中复选框的跟踪。
关于javascript - 使用脚本检查每个复选框时,Knockout 模型不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557261/