0

ドロップダウンが2つありますが、相互に関係はありません。最初のドロップダウンの選択に応じて、2番目のドロップダウンの要素を非表示または無効にします。

これは、1つのドロップダウンで[入力]を選択すると、他のドロップダウンで関連する車が表示されるフィドルリンクです。フィドルでは、データが次のように宣言されていることがわかります

filters: ["None", "Old", "New", "Super"],
items: [{ name: "Corvette", type: "Old"},
       { name: "Charger", type: "Old"},
       { name: "Prius", type: "New"},
       { name: "Magnum", type: "New"},
       { name: "McLaren", type: "Super"},
       { name: "Saleen", type: "Super"}]

この2つの配列の間に関係があることがわかります。しかし、私の実際のシナリオでは、以下のように相互に関係はありません

// Mydata will be like
 filters: ["None", "Old", "New", "Super"],
 items: [{ name: "Corvette", type: "Old"},
       { name: "Charger"},
       { name: "Prius"},
       { name: "Magnum"},
       { name: "McLaren"},
       { name: "Saleen"}]

ノックアウトでこれをどのように達成できますか?

4

1 に答える 1

1

私があなたを正しく理解していれば、filteredItems計算されたものを変更sliceして、配列で次のようにするだけです。

self.filteredItems = ko.computed(function() {
    var filter = self.filter();
    if (!filter || filter == "None") {
        return self.items();
    } else {
        return self.items.slice(0, 4);
    }
});

サンプル: http://jsfiddle.net/rniemeyer/3y4YP/

于 2013-03-11T13:32:21.747 に答える