【发布时间】:2014-02-26 20:32:10
【问题描述】:
我们正在尝试实现具有以下功能的复选框和列表:
- 如果有项目,单击复选框将清除数组,如果没有,则添加新项目。
- 单击“删除”按钮时从数组中删除一项,一旦删除最后一项,复选框会自动取消选中。
我遇到的问题是,如果您单击删除每个数组项,然后单击复选框以添加一个空白条目,我希望再次选中该复选框(根据选中的 observable),但是它是不是吗?
我有以下代码:
<div>
<input type="checkbox" data-bind="checked: PreviousSurnames().length > 0, click: $root.PreviousSurnames_Click" />Previous Surname(s)?
</div>
<div data-bind="foreach: PreviousSurnames">
<div>
<input type="text" data-bind="value: $data">
<span data-bind="click: $root.removePreviousSurname">Remove</span>
</div>
</div>
var myViewModelExample = function () {
var self = this;
self.PreviousSurnames = ko.observableArray(['SURNAME1', 'SURNAME2', 'SURNAME3']);
self.removePreviousSurname = function (surname) {
self.PreviousSurnames.remove(surname);
};
self.PreviousSurnames_Click = function () {
if (self.PreviousSurnames().length === 0) {
self.PreviousSurnames.push('');
}
else {
self.PreviousSurnames.removeAll();
}
alet(2)
}
}
ko.applyBindings(new myViewModelExample());
【问题讨论】:
标签: checkbox knockout.js