2013-05-17 26 views
2

我有一个Web服务,它将客户列表与其他数据一起传递。我希望能够点击多个客户,将他们添加到我将在别处使用的数组中。再次单击它们将从阵列中删除它们。点击击倒js突出显示行,并将数据传递到新阵列

在一些方面与该解决方案类似:

Highlight selected row using knockout

如果有人能说明什么计算的值进行比较,以及如何工作的,我想我也许能得到我自己的休息:

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

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

回答

5

你需要的是设置一个观察特性和添加/ t取出当数值改变时他排列。或者只是在任何时间点检查选择哪一个。让我的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()); 
};