バックエンドから提供される複雑なモデルがあります。これには、多数の通常の属性、いくつかのネストされたモデル、およびいくつかのコレクションがあります。
マイページには、無効なアイテム用と有効なアイテム用の 2 つのテーブルがあります。問題のアイテムは、ネストされたコレクションの 1 つからのものです。baseModel.documentCollection
を実装して と呼びましょうDocumentsCollection
。
私は私のsにフィルタリングコードを入れたくないMarionette.CompositeView
ので、私がやったことは次のとおりです(注、「有効な」ケースのために複製されています):
var invalidDocsCollection = new DocumentsCollection(
baseModel.documentCollection.filter(function(item) {
return !item.isValidItem();
})
);
var invalidTableView = new BookIn.PendingBookInRequestItemsCollectionView({
collection: app.collections.invalidDocsCollection
});
layout.invalidDocsRegion.show(invalidTableView);
これは、1 つのベース コレクションから 2 つのテーブルを個別に作成する場合に適しています。しかし、明らかに、イベント パイプライン全体をベース コレクションに落とし込んでいるわけではありません。これは、ドキュメントの有効性が変更されたときに、他のコレクション、つまり他のビューに移行する適切な方法がないことを意味します。
私が求めているのは、フィルター コレクションを上に置くことができる基本コレクションを持つ良い方法です。助言がありますか?