2

我有一个 Web 服务,它通过其他数据传递客户列表。我希望能够点击多个客户,将他们添加到我将在其他地方使用的数组中。再次单击它们会将它们从阵列中删除。

在某些方面与此解决方案类似:

使用剔除突出显示选定的行

如果有人可以解释计算出的值是什么以及它是如何工作的,我想我可以自己得到其余的:

self.isSelected = ko.computed(function() {
    return selected() === self;            
});

http://jsfiddle.net/6FCEe/33/

4

1 回答 1

5

您需要的是设置一个可观察的属性并在值更改时从数组中添加/删除。或者只是检查在任何时间点选择了哪个。让我在 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());
};
于 2013-05-17T17:29:37.200 回答