单击knockout js突出显示行,并将数据传递给新数组

Org*_*cat 2 javascript knockout.js

我有一个Web服务,用于传递包含其他数据的客户列表.我希望能够点击多个客户,将它们添加到我将在别处使用的数组中.再次单击它们将从阵列中删除它们.

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

使用敲除突出显示所选行

如果有人能够解释计算出的值与之比较以及它是如何工作的,我想我可以自己完成其余的事情:

self.isSelected = ko.computed(function() {
    return selected() === self;            
});
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*rda 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
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

并将onClick事件更新为:

self.selectThing = function(item) {
    item.isSelected(!item.isSelected());
};
Run Code Online (Sandbox Code Playgroud)