1

2 つの ko.observablearray があります。サーバーから取得したいくつかの値を入力している配列の 1 つ:

`self.AllItems = ko.observableArray([]);

function (data) {
   for (var index = 0; index < data.length; index++) {
   self.AllItems.push(data[index]);
   }
 };

モデルの特定のプロパティから取得したデータを含む 2 番目の配列。

self.SelectedItems = ko.observableArray(modelData.Modalities);

これはうまくいきます。

ここで、基本的に「selecteditems」を「allitems」から削除したいと考えています。

私は試した

self.AllItems.removeAll(self.SelectedItems());

それはうまくいきませんでした。そしてindexOf、オブジェクトがこの操作をサポートしていないという例外が発生したときに試していました。私は完全に混乱しています。どこが間違っているのか教えてください。

4

1 に答える 1

1

あなたの論理が優れていることを示すためにフィドルを作りました。

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 の内容を確認できますか?

于 2013-07-03T13:23:06.657 に答える