我有两个ko.observablearray。 我填充了一些数组,我从服务器获取了一些值:
`self.AllItems = ko.observableArray([]);
function (data) {
for (var index = 0; index < data.length; index++) {
self.AllItems.push(data[index]);
}
};
第二个数组包含我从模型的特定属性获取的数据。
self.SelectedItems = ko.observableArray(modelData.Modalities);
这很好用。
现在我基本上想要从“allitems”中删除“selecteditems”。
我试过
self.AllItems.removeAll(self.SelectedItems());
那没用。
当我得到一个异常时我正在尝试indexOf
,该异常表示该对象不支持此操作。我很困惑。请告诉我哪里出错了。
答案 0 :(得分:1)
我做了一个fiddle来证明你的逻辑很好。
var all =ko.observableArray([]);
for(var index = 0; index < 10; index++) {
all.push({'name':('item'+index)});
}
var itemsToRemove = ko.observableArray([])
itemsToRemove.push(all()[2]);
itemsToRemove.push(all()[5]);
all.removeAll(itemsToRemove());
console.log(JSON.stringify(all()));
// results : [{"name":"item0"},{"name":"item1"},{"name":"item3"},{"name":"item4"},{"name":"item6"},{"name":"item7"},{"name":"item8"},{"name":"item9"}]
你能检查一下modelData.Modalities中的内容吗?