Я хочу фильтровать элементы своего списка, используя несколько фильтров.Множество фильтров AngularJS
Это, как я заполняю мой список пунктов (с помощью Django):
<script type="text/javascript">
ngApp.controller('FilterInputCtrl', function ($scope, $rootScope) {
$scope.items1 = [];
{% for cross in crosses%}
$scope.items.push
({
id:{{ cross.id }},
name: '{{ cross.name }}',
comments: '{{ cross.comments }}',
aliases: '{{ cross.print_lines_aliases }}',
});
{% endfor %}
});
</script>
Один код фильтра, как это:
<li ng-repeat="cross in items | filter:myFilter">
который фильтрует по всем полям элемента (идентификатор, имя , ... и т.д).
Я хочу фильтровать один и тот же путь, но с использованием нескольких фильтров, которые также фильтруют все поля. Таким образом, пользователь может помнить сегменты из имени, поэтому он вводит много сегментов из названия, а затем он может помнить сегмент из комментариев и так далее.
Я нашел этот путь:
<li ng-repeat="cross in items | filter:{ name: filter1, lines: filter2, comments: filter3 }">
, который работает хорошо, но каждый фильтр в настоящее время является специфичным для одного критерия. Проблема в том, что я не знаю, как пользователь будет думать при поиске; возможно, он будет искать множество отрывков комментариев!
Я ищу способ применения многих фильтров, и каждый из них фильтрует в соответствии с каждым полем без указания одного поля для каждого. Что-то выглядит, как это может быть:
<li ng-repeat="cross in items | filter:{filter1, filter2, filter3}">
'<литий нг-повтор = "крест в filteredItems = (пункты | Фильтр: фильтр1 | фильтр: фильтр2 | фильтр: фильтр3)">', @The Маэстро (Создала новую переменную области видимости, называемую 'filterItems', что позволяет легко проверить, остались ли какие-либо элементы после фильтрации, вы можете отобразить сообщение, например« Нет элементов », если'! FiltItems.length'.) – Tacocat
Он отлично работал: D большое спасибо! –
Хорошо! Рад решить вашу проблему! Не совсем уверен, что это то, о чем вы просили. Поскольку это так, я опубликовал его как ответ, :). Был бы признателен, если бы вы могли принять его: D, @ The Maestro – Tacocat