Как применить два включающих фильтра в Angular?

0
<tr ng-repeat="thing in things| filter: {toDpt: filterReceived} && {fromDpt: filterSent}">

Я пытаюсь показать вещи от AND до моего отдела (dpt). Мой фильтрReceived и filterSent переключаются с помощью двух кнопок. Оба работают.

Проблема в том, что работает только первый фильтр. Если я положил fromDpt до toDpt, будет работать только fromDpt.

Спасибо за любой совет.

  • 0
    filter:{toDpt: filterReceived, fromDpt: filterSent}
  • 0
    Это работало так же, как мой синтаксис. Фильтр будет применен к toDpt И к fromDpt, я хочу получить вещи, которые toDpt ИЛИ fromDpt. Например, я хочу выбрать filterReceived = 'Korea' и filterSent = 'Spain'. С применением этих ДВУХ фильтров я хочу получать ВСЕ вещи, полученные Кореей, и ВСЕ вещи, отправленные Испанией. Я не хочу получать ТОЛЬКО вещи, которые были отправлены Испанией и получены Кореей.
Показать ещё 2 комментария
Теги:
angularjs-filter

1 ответ

0
Лучший ответ

Цель этого кода заключалась в том, чтобы отображать билеты из отдела или на отступ. Фильтры $ scope.filt содержат фильтры для применения. Пользователь может видеть, одновременно или нет, билеты, которые его отдел отправил или получил.

Используя Angular Filters, я смог вызвать функцию ticketFilter, передав в качестве первого аргумента по умолчанию и фильтруя в качестве второго необязательного аргумента.

контроллер:

$scope.filters.toDpt = 'Finance';
$scope.filters.fromDpt = 'Food';

Фильтр:

app.filter('ticketsFilter', function (){
    return function (items, filters){
        console.log
        var filtered = [];
        for (var i=0; i < items.length; i++){
            var item = items[i];
            //CHECKING FROM AND TO DPT.
            if (item.fromDpt == filters.sent){
                filtered.push(item);
            } else if (item.toDpt == filters.received){
                filtered.push(item);
            };
        };
        return filtered;
    };
});

Разметка:

<tr ng-repeat="ticket in tickets | ticketsFilter:filters"> 

Ещё вопросы

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