我正在使用 knockout.js 和 sammy.js 开发单页应用程序。
我知道如何通过将带有 click
事件的按钮附加到每个项目来删除一个项目,如下所示:
self.deleteItem = function(item) {
self.array.remove(item);
}
我想弄清楚如何使用复选框同时删除多个项目。
有人能指出我正确的方向吗?
谢谢!
最佳答案
您可以通过向虚拟机添加新数组来存储选定的行来实现此目的。使用 checked
绑定(bind)将其绑定(bind)到复选框:
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/
关于javascript - knockout JS : Delete multiple items using checkbox and one delete button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183266/