我试图将lodash与ngMaterial和md-autocomplete结合起来。
我在数组中有一组用户对象:
var User.collection = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 34 },
{ 'user': 'fred', 'age': 42 },
{ 'user': 'barney', 'age': 36 }
];
我正在尝试过滤此列表,仅返回与搜索查询匹配的列表,例如
var query = "fr"
我让过滤器使用此控制器功能:
collectionFilter: function(query) {
var lowercaseQuery = angular.lowercase(query);
return _.filter(User.collection, function(obj) {
return (angular.lowercase(obj.name).indexOf(lowercaseQuery) === 0)
})
}
问题在于,如果我在名称的中间输入" rne",我就不会得到任何结果。
答案 0 :(得分:2)
您正在检查=== 0
。试试> -1
。
Indexof返回字符串中参数的索引(位置)。第一个位置为0.这就是为什么它只显示与第一个字符匹配的结果。
如果您愿意,请尝试将其更改为=== 1
并搜索" re"。