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 に答える