我有一个从后端提供的复杂模型,它有一堆常规属性、一些嵌套模型和几个集合。
我的页面有两个表格,一个用于无效项目,一个用于有效项目。有问题的项目来自嵌套集合之一。让我们称之为baseModel.documentCollection
,实施DocumentsCollection
。
我不希望在我Marionette.CompositeView
的 s 中有任何过滤代码,所以我所做的如下(注意,为“有效”案例重复):
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);
这对于实际从一个基本集合独立填充两个表来说很好。但显然,我并没有将整个事件管道归结为基本集合。这意味着当一个文档的有效性发生变化时,没有巧妙的方法将它转移到另一个集合,因此转移到另一个视图。
我所追求的是一种很好的方式来拥有一个基础集合,我可以在上面放置过滤器集合。有什么建议么?