Backbone: 在不创建新集合的情况下获取集合的选择

Backbone: Get selection of collection without creating new collection

我有一个集合 A 和一个视图 A

 collection A:
      model {type: A}
      model {type: B}

查看 A 使用集合 A 及其所有模型。 如果我将新模型添加到集合 A,则该模型将添加到视图 A。

在视图 B 中,我也想使用集合 A,但不是它的所有模型,只有类型 B 的模型。但我想在视图 A 中使用所有侦听器。

所以,如果我在视图 A 中添加一个类型为 B 的新模型,视图 B 中的侦听器应该拦截它并将其添加到视图 B。

我可以制作两个不同的集合,并使用两个侦听器。但这看起来很脏。

有没有办法将一个集合的选择放入一个新集合,但保持相同的侦听器和 backbone 函数,就好像它只是对主集合的引用一样?

一个解决方案是让一个集合复制另一个集合(同时应用过滤器)。

来自https://jsfiddle.net/t8e6Ldue/

var collectionB = new FilteredCollection(null, {
  source: collectionA,
  filter: function(model) {
    return model.get('type') === 'B';
  }
});

查看完整代码的 JSFiddle