我有一个Web服务,用于传递包含其他数据的客户列表。我希望能够点击多个客户,将它们添加到我将在别处使用的数组中。再次单击它们将从阵列中删除它们。
在某些方面类似于此解决方案:
Highlight selected row using knockout
如果有人可以解释计算出的价值与其比较以及如何运作,我想我可以自己完成其余的事情:
self.isSelected = ko.computed(function() {
return selected() === self;
});
答案 0 :(得分:5)
您需要的是设置一个observable属性,并在值更改时从数组中添加/删除。或者只是检查在任何时间点选择哪一个。让我在jsfiddle中创建一个示例:http://jsfiddle.net/6FCEe/55/
Thing = function(id, name, selected) {
var self = this;
self.ID = id,
self.Name = name,
self.isSelected = ko.observable(false);
self.isSelected.subscribe(function (selected){
if (selected){
// Add to array
} else {
// Remove from array
}
});
};
将onClick事件更新为:
self.selectThing = function(item) {
item.isSelected(!item.isSelected());
};