我使用从原始集合中过滤的数组重置我的集合。
var applyFilters = function() {
if (queryfilters.indexOf('no_counts_module') > -1) {
this.collectionFiltered.reset(this.collectionFiltered.filter(function(site) {
return !/,?Counts,?/.test(site.get('modulescsv'));
}));
}
}.bind(this);
此函数运行后,this.collectionFiltered
有我期望的三个模型,但是this.collectionFiltered.fullCollection
(我正在使用主干分页器。)有六个模型,其中三个不是用于重置集合的数组的一部分,并且与过滤器不匹配。结果,我在页面上显示的型号计数显示,1-6 of 6
而不是1-3 of 3
因为它是从fullCollection
.
fullCollection
正在随着重置而改变。它的原始长度是八。它确实包括传递给重置的三个预期模型。这些首先出现在集合中,然后是三个附加模型,它们是与过滤器不匹配的模型(尽管并非原始集合中的所有模型都不匹配)。
为什么我fullCollection
包含的模型不属于传递给重置的数组的一部分?
更新:我现在相信我的过滤器可能会被 backgrid-filter 破坏。在我应用了自定义过滤器之后,它似乎再次运行搜索,并且该集合正在覆盖我从过滤器构建的集合。