Backbone:无需创建新集合即可选择集合

时间:2016-09-22 13:14:56

标签: backbone.js

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

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

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

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

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

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

有没有办法让一个集合选择到一个新的集合中,但保留相同的监听器和骨干函数,好像它只是对主集合的引用一样?

1 个答案:

答案 0 :(得分:1)

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

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

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

查看JSFiddle的完整代码