2014-09-05 5 views
0

То, что я пытаюсь сделать, это поиск по нескольким полям повтора в комбинации. Проблема в том, что при поиске по query.$ модели я не могу выполнить поиск из нескольких полей.Фильтры AngularJS - поиск нескольких полей

То, что я ищу, чтобы найти 1234 + Street Имя

<input ng-keypress="searching()" type="text" ng-model="query.$" placeholder="Search" /> 

<li ng-repeat="item in (filteredItems = (items| filter:query))"> 
    {{item.address.streetNumber}} {{item.address.streetName}} 
</li> 

Я нашел set of filters, который я думал, что будет работать, но не уверен, что я использую это право.

filterBy: ['item.address.streetNumber' + 'item.address.streetName']: query 

Любая помощь приветствуется. Вот что я сделал. http://plnkr.co/edit/75nGxVgqL3lJVFlGyZMY?p=preview

ответ

0

с помощью функции предиката является одним из способов, см: http://ngtutorial.com/learn/filter.html#/_tblcontents_20

обновление

скажите, пожалуйста, если этот пример не объясняет это правильно, спасибо.

Update, добавьте пример

возвращение 'истинного', если вы хотите деталь.

myApp.controller('MyCtrl', ['$scope', function($scope) { 

    $scope.predfn = function(v) { 
    return v.name == '123' || v.phone == 'Fake Street'; 
    }; 

...

<tr ng-repeat="friendObj in friends | filter:predfn"> 
+0

Спасибо, но не уверен, если я понимаю, или это то, что мне нужно. Взгляните на ссылку. http://plnkr.co/edit/75nGxVgqL3lJVFlGyZMY?p=preview – hyperdrive

+0

обновлено, чтобы привести пример, верните true, если вы хотите элемент. –

+0

старайтесь не использовать '$' в фильтре Filter, потому что это попытается найти каждое свойство. –

Смежные вопросы