我正在搜索这样的骨干系列,
search: function( filterValue ) {
var filterThroughValue = function(data) {
return _.some(_.values(data.toJSON()), function(value) {
if(value != undefined) {
value = (!isNaN(value) ? value.toString() : value);
return value.indexOf(filterValue) >= 0;
}
});
};
return App.Collections.filterCollection = this.filter(filterThroughValue);
}
搜索参数来自文本输入,我想要返回结果,或者字母大小写是否可能?我可以将params和搜索到的内容改为小写吗?
答案 0 :(得分:0)
将您正在测试的值和搜索字词转换为小写字母:
// At the start of `search`
filterValue = filterValue.toLowerCase();
// In your `some` predicate:
return value.toLowerCase().indexOf(filterValue) >= 0;
顺便说一句,在Model类中实现大多数逻辑会更清晰:
MyModel = Backbone.Model.extend({
matches: function(term) {
var lowerCaseTerm = term.toLowerCase();
return this.values().some(function(value) {
if(!value) return false;
return value.toString().toLowerCase().indexOf(lowerCaseTerm) >= 0;
})
}
})
MyCollection = Backbone.Collection.extend({
search: function(term) {
return this.filter(function(model) {
return model.matches(term)
})
}
})