我有一个集合A和一个视图A
collection A:
model {type: A}
model {type: B}
查看使用集合A及其所有模型。 如果我将新模型添加到集合A,则会将此模型添加到视图A中。
在视图B中,我也希望使用集合A,但不是所有模型,只使用类型B的模型。但我想在视图A中使用所有侦听器。
所以,如果我在视图A中添加一个类型为B的新模型,视图B中的侦听器应该拦截它并将其添加到视图B.
我可以创建两个不同的集合,并使用两个侦听器。但这看起来很脏。
有没有办法让一个集合选择到一个新的集合中,但保留相同的监听器和骨干函数,好像它只是对主集合的引用一样?
答案 0 :(得分:1)
一种解决方案是让一个集合复制另一个集合(同时应用过滤器)。
来自https://jsfiddle.net/t8e6Ldue/
var collectionB = new FilteredCollection(null, {
source: collectionA,
filter: function(model) {
return model.get('type') === 'B';
}
});
查看JSFiddle的完整代码