バインドする 2 つの関連 (マスター/詳細) 配列を含むビュー モデルがあります。
var ViewModel = function (data) {
var self = this;
self.CategoryList = ko.observableArray(data.CategoryList);
self.ItemList = ko.observableArray(data.ItemList);
}
Category は{ categoryID: 1, name: "Red Items" }
etcの配列です
Item は{ itemID: 1, categoryID: 1, name: "Red Widget" }
etcの配列です
いくつかのカテゴリと、おそらく数百のアイテムがあります。カテゴリを列挙して関連するアイテムにアクセスしたり、すべてのアイテムに渡ってカテゴリにアクセスしたりできるように、ビュー モデルでこれらを表現する方法に苦労しています。
両方のリストで重複した情報を維持するのは効率的ではないようです。必要以上のデータをネットワーク経由で送信したくありません。
1 つのアプローチ: Item オブジェクトと Category オブジェクトを作成し、プロトタイプを変更してフィルタリング (ko.computed) 関数を含めます。category.Items()
またはitem.Category().Name
、データを読み込んで保存する必要があるため、knockout.js 内でこれを最もよく達成する方法を 100% 知っているわけではありません。
私は単純な JSON オブジェクトの配列には慣れていません。関数/プロトタイプ ルートに進むと仮定すると、オブジェクトの配列をどのようにロードおよび保存できますか?