0

我正在尝试将 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”之类的字样,我将不会得到任何结果。

4

1 回答 1

2

你正在检查=== 0. 试试> -1

Indexof 返回字符串中参数的索引(位置)。第一个位置是 0。这就是为什么它只显示与第一个字符匹配的结果。

如果您愿意,请尝试将其更改为=== 1并搜索“re”。

于 2016-01-24T00:21:18.590 回答