您可以通过向vm添加新阵列来存储选定行来实现此目的。它绑定到使用checked
复选框绑定:
function ViewModel() {
var self = this;
self.items = ko.observableArray(["One", "Two", "Three"]);
self.selectedItems = ko.observableArray();
self.deleteSelected = function() {
self.items.removeAll(self.selectedItems());
self.selectedItems.removeAll();
}
}
ko.applyBindings(new ViewModel());
<div data-bind="foreach: items">
<input type="checkbox" data-bind="value: $data, checked: $parent.selectedItems" />
<span data-bind="text: $data"></span>
<br/>
</div>
<input type="button" value="Remove Selected" data-bind="click: deleteSelected" />
下面是一个例子:http://jsfiddle.net/zvFnW/
感谢这个!当我尝试实现你的代码并点击一个复选框时,它会检查所有复选框。我究竟做错了什么?它在我的小提琴中奏效,但由于某种原因而不能活着。 http://jsfiddle.net/ismailp/zvFnW/2/ – Ismailp
这很难说。尝试在小提琴中重现它。你不忘记增加价值:$数据复选框? –
也许我没有得到你的问题。你能否澄清一下哪些行不通? –