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
我有一个集合 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