AngularJS - Как я могу использовать фильтрованный массив в другом фильтре? - PullRequest
0 голосов
/ 07 сентября 2018

Как я могу использовать отфильтрованный массив в orderByName в фильтре newFirst? Возможно ли это?

filter = (list | orderByName | newFirst )

У меня список отсортирован по алфавиту, и мне нужно снова отсортировать, если он новый или нет.

1 Ответ

0 голосов
/ 07 сентября 2018

Да, вы можете сделать это. Но вы должны позаботиться о том, чтобы вторая функция упорядочения не перекрывала результат первой. Самый простой способ добиться этого - использовать стандартный фильтр AngularJS orderBy с несколькими параметрами сортировки:

Использование свойств объекта:

ng-repeat="item in list | orderBy:['name', 'isNew']" 

Использование пользовательских компараторов:

ng-repeat="item in list | orderBy:[orderByName, newFirst]"

Для второго способа вам необходимо реализовать функции orderByName и newFirst в качестве функции компаратора (см. https://docs.angularjs.org/api/ng/filter/orderBy).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...