在observableArray Knockout JS中切换值?

时间:2013-11-15 19:07:24

标签: javascript arrays knockout.js observable

基本上我有一个列表,列表中的每个项目都有一个唯一的值。如果单击列表项,我希望在可观察数组中添加或删除该值。因此,如果数组中存在该值,我想删除它,反之亦然。

数组的结构很简单:

var items = ko.observableArray([
    "value1",
    "value2"
]);

该列表将包含value1value2的输入。如果点击了包含value2的列表,我想将其从数组中删除,如果没有,我需要push它到数组。

所以基本上我需要在数组中切换一个项目。

这可以用knockout.js吗?谢谢!

1 个答案:

答案 0 :(得分:2)

不确定。 Knockout的observableArray内置了indexOf方法。使用它,以及pushremove来做你想要的。这样的事情应该有效:

function toggle(value){
    if (items.indexOf(value) < 0){
        //it's not in the array - push it
        items.push(value);
    } else {
        //it's there - remove it
        items.remove(value);
    }
}