我使用从原始集合中过滤的数组重置了我的集合。
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
(我正在使用backbone-paginator。)有六个模型,其中三个不属于用于重置集合的数组,与过滤器不匹配。因此,我在页面上显示的模型计数显示1-6 of 6
而不是1-3 of 3
,因为这是从fullCollection
计算的。
fullCollection
正在随着重置而改变。原来的长度是八。它 包括传递给重置的三个预期模型。这些首先出现在集合中,然后是另外三个模型,这些模型是与过滤器不匹配的模型(尽管不是所有原始集合中不匹配的模型)。
为什么我的fullCollection
包含的模型不属于传递给重置的数组?
更新:我现在相信我的过滤器可能会被backgrid-filter破坏。在应用自定义过滤器后,它看起来像是在再次运行搜索,并且该集合正在覆盖从过滤器构建的集合。
答案 0 :(得分:1)
不确定这是否是解决方案,但我认为这可能是您在收集完成之前调用.fullcollection。
第二种可能性检查你的正则表达式是否真的正确。
你能举例说明你的模特吗?
如果有帮助请告诉我