不想让用户可以通过列表中的复选框来选择人员。
此示例有效,但我想知道您是否会以相同的方式进行操作。
主要问题是,无法轻松比较 javascript 任意对象。所以必须有一个映射。
这样可以吗?我不想为此创建自定义绑定,我可以在绑定中定义一个 Id 字段。
function Person(id, name, age) {
this.id = id;
this.name = name;
this.age = age;
}
function Party(id, name, persons) {
var self = this;
this.id = id;
this.name = name;
this.persons = ko.observableArray(persons);
this.persons_checked = ko.observableArray(); //<--- for the checkboxes
this.persons_checked.subscribe(function(newValue) {
var mapped = [];
mapped = $.map(newValue, function(id) {
return $.grep(listOfPeople, function(n) { return n.id == id; }); });
self.persons(mapped);
});
}
在此处完成示例:http: //jsbin.com/ukipek/6/edit
谢谢