Абстрактный встроенный фильтр Angularjs

0

Новый для углового!

Я создал очень простой фильтр, которым я вполне доволен. Однако я хочу перенести встроенный фильтр в функцию .filter() - я надеюсь использовать его как filter: dataFilter или что-то подобное.

Итак, в настоящее время у меня есть некоторые поля выбора:

<select ng-model="search.foo"><!-- options --></select>
<select ng-model="search.bar"><!-- options --></select>

И ng-repeat отсортированных данных:

<div ng-repeat="data in response.data | filter:{foo: search.foo, bar: search.bar}">
    <!-- display sorted data -->
</div>

Выше в ng-repeat - это то, что я бы назвал встроенным фильтром, который я хочу абстрагировать.

Как мне это сделать?

Все рекомендации были оценены.


Цель моей конечной игры - показать сообщение, когда в фильтре нет результатов. Я считаю, что фильтр должен быть "абстрагирован", чтобы это работало? Что-то вроде:

<p ng-show="(response.data | filter:blahFilter).length == 0">No results found.</p>
Теги:
ionic-framework
angularjs-ng-repeat

1 ответ

0

Я бы посоветовал вам переместить это в контроллер. Тогда внутри там просто используйте свой фильтр как вызов функции

$scope.myData = $filter('blaFilter')(response.data)

тогда

<p ng-show="myData.length == 0">No results found.</p>
  • 0
    Не забудьте ввести фильтр $ в контроллер
  • 0
    Да, я согласен со всем этим - мне больше интересно, как мне создать этот фильтр?
Показать ещё 2 комментария

Ещё вопросы

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