Несколько фильтров для ng-repeat с отслеживанием

У меня есть ng-repeat с фильтрами, как показано ниже. По какой-то причине он не работал на веб-сервере, и я думаю, что это из-за того, что дубликаты элементов не разрешены в DOM браузера, поэтому мне пришлось указать «отслеживать по элементу.id». Пожалуйста, смотрите код ниже.

<div ng-repeat="item in items | filter:search:date | filter:filterFrontPage track by item.id">

Единственная проблема с приведенным выше кодом заключается в том, что элементы не загружаются с помощью фильтра «filterFrontPage», который также отфильтровывает логическое значение из элемента. Все работает нормально, когда я изменил его на следующее:

<div ng-repeat="item in items | filter:search:date track by item.id">  

Таким образом, используя вышеизложенное, как бы я добавил еще один фильтр для фильтрации логического значения в переменной. Кажется, я не могу заставить это работать, используя «filter:search:date:{isActive:true}». Пожалуйста, дайте мне знать, что можно сделать, чтобы это заработало.

Обновление 1:

Я удалил «дату», так как использовал ее давно. «поиск» предназначен для следующего, и это отлично работает.

<input class="form-control" type="text" placeholder="Search posts" ng-model="search.$" />

В идеале filterFrontPage написан для фильтрации элементов по переменной isActive true/false;


person Pavan Welihinda    schedule 19.10.2014    source источник
comment
У тебя случайно нет плункра?   -  person PSL    schedule 19.10.2014
comment
У меня сейчас большой проект, и я не использовал plunkr. Не могли бы вы определить, почему такой фильтр не работает?   -  person Pavan Welihinda    schedule 19.10.2014
comment
Ни один из этих фильтров не кажется правильным. Я сомневаюсь, что date является компаратором или filterFrontPage одним из string, Object или function.   -  person a better oliver    schedule 19.10.2014
comment
Проверьте мое обновление 1 в посте.   -  person Pavan Welihinda    schedule 19.10.2014


Ответы (1)


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

<div ng-repeat="item in (items | filter:search:date) track by item.id">
person Nikos Paraskevopoulos    schedule 19.10.2014
comment
Большое спасибо. Но почему, когда я добавляю его как этот элемент в (items | filter:search:{isFrontPage:true}) трек по $index, этот метод здесь не вызывается. app.filter('filterFrontPage', function () { return function (items) { console.log('hello'); } }); - person Pavan Welihinda; 20.10.2014
comment
Если бы вы могли предоставить скрипку / планку для этого, вы могли бы получить больше помощи. - person Nikos Paraskevopoulos; 20.10.2014
comment
Хорошо, используя ваш код, как мне отфильтровать логическое значение в элементе? - person Pavan Welihinda; 20.10.2014