AngularJS фильтр точное совпадение, кроме свободного текстового поиска

0

У AngularJS docs (https://docs.angularjs.org/api/ng/filter/filter) есть очень четкий пример того, как использовать свой фильтр вместе со компаратором, чтобы вы могли выполнить точное совпадение, установив: true на фильтр

ng-repeat="task in tasks  | filter:search:true

Проблема в том, что я ищу объект поиска (в соответствии с их примером), и один из фильтров поиска - это бесплатный текстовый поиск. Как я могу получить строгий поиск, чтобы применить его к другим другим фильтрам поиска, но НЕ к свободному текстовому поиску.

Поэтому придерживаться их примера. Глядя на следующее

<label>Any: <input ng-model="search.$"></label> <br>
<label>Name only <input ng-model="search.name"></label><br>
<label>Phone only <input ng-model="search.phone"></label><br>

Как я могу получить строгую фильтрацию для применения к search.name и search.phone, но НЕ для поиска. $

Примечание. В моем коде у меня нет search.name и search.phone в виде текстовых вводов, а скорее как выпадающий выбор, поэтому я хочу, чтобы они были строгими.

Пожалуйста, посоветуйте Спасибо

Теги:
angularjs-filter

1 ответ

1
Лучший ответ
  • Применить несколько фильтров:

    ng-repeat = "задача в задачах | фильтр: {'$': поиск. $} | фильтр: {'phone': search.phone}: true | фильтр: {'name': search.phone}: true

  • Создайте собственный фильтр:

    ng-repeat = "задача в задачах myfilter: поиск app.filter('myfilter')

  • 0
    Отлично. Не знал, что ты можешь зацепить их вот так. Есть ли синтаксис, чтобы сказать что-то вроде этого ng-repeat = "task in tasks | filter: {'$': search. $} | Filter :: true, так что он будет нестрогим для $, но строгим для всего остального без перечисляя их?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню