Javascript 主干筛选器集合是否按名称返回模型?

Javascript 主干筛选器集合是否按名称返回模型?,javascript,backbone.js,backbone.js-collections,Javascript,Backbone.js,Backbone.js Collections,我试图通过模型属性(名称)过滤集合 我有一个小问题,虽然,我的搜索参数目前只是简单的“a”。因此,它应该返回所有名称中带有“a”的模型 然而,我有两个模型,应该返回这些名称是“阿巴”和“AAAS”。我假设“AAAS”没有返回,因为我的搜索词是小写的,模型名是大写的,所以我添加了一个.toLowerCase(),但它仍然只返回“abba”为什么?根据(主干网的集合。过滤器使用它),您的筛选的数组应该是空的-它应该只包含谓词返回真值的元素-您的函数返回的未定义的是假值。试试这个: ... if(mo

我试图通过模型属性(名称)过滤集合

我有一个小问题,虽然,我的搜索参数目前只是简单的“a”。因此,它应该返回所有名称中带有“a”的模型


然而,我有两个模型,应该返回这些名称是“阿巴”和“AAAS”。我假设“AAAS”没有返回,因为我的搜索词是小写的,模型名是大写的,所以我添加了一个
.toLowerCase()
,但它仍然只返回“abba”为什么?

根据(主干网的
集合。过滤器使用它),您的
筛选的
数组应该是空的-它应该只包含谓词返回真值的元素-您的函数返回的
未定义的
是假值。试试这个:

...
if(model.get('name').toLowerCase().indexOf(searchParam.toLowerCase()) !== -1) {
    model.trigger('show');
    return true;
} else {
    model.trigger('hide');
}
...

现在,
filtered
应该在它的
name
中包含所有带有
searchParam
的模型(不区分大小写)。

值得补充的是,如果在
byName(…)
方法的其余部分不需要
filtered
模型数组,最好使用
每个(…)
方法。也就是说,
this.each(function(model){…}
。我做了一个,你的代码返回abba和AAAS。因此,据我所知,问题是其他的。
...
if(model.get('name').toLowerCase().indexOf(searchParam.toLowerCase()) !== -1) {
    model.trigger('show');
    return true;
} else {
    model.trigger('hide');
}
...