我正在使用knockout foreach绑定在以下代码的帮助下生成一个表:
<tbody data-bind="foreach: queryData">
<tr>
<td><input type="checkbox" data-bind="checked: isChecked" /></td>
<td data-bind="text: id"></td>
<td data-bind="text: EN"></td>
<td data-bind="text: CN"></td>
<td data-bind="text: PN"></td>
</tr>
</tbody>
列id,EN,CN和PN的值是从AJAX响应中的PHP脚本接收的,该响应设置为queryData observable array,如下所示:
self.queryData($.parseJSON(data));
我有以下可观察的定义:
this.queryData= ko.observableArray();
this.isChecked = ko.observable();
加载完整表后,我想要一个选项,在ko.utils.arrayForEach的帮助下使用以下代码选择表中的所有复选框:
this.selectAll = function(){
ko.utils.arrayForEach(self.queryData(),function(items){
self.isChecked(true);
});
};
我知道isChecked没有在queryData observable数组中定义,但我确实想在queryData中的所有项目上运行循环并将isChecked设置为true。
答案 0 :(得分:0)
你需要做这样的事情
this.selectAll = function(){
ko.utils.arrayForEach(self.queryData(),function(items){
items.isChecked(true); // `items` instead of `self` because you are looping here
});
};
根据您的要求检查here
最好的方法是使用计算机,这是类似的东西,你可以使用读/写<{3}}找到它