У меня есть список под названием ListA
. Я выполняю несколько фильтров и сохраняю в новом массиве с именем filteredList
.
<div ng-repeat="element in filteredList =(ListA| filter: {label:searchCategory.value} |filter:searchString)">
СЕЙЧАС, я хочу использовать filteredList
для реализации разбивки на страницы. Я уже выполнил разбивку на страницы для другой страницы, используя splice(start, end)
где я обновляю start
и end
значения для обновления видимого массива. Добавление сплайсинга к фильтру изменит мой размер filteredList
, который мне нужен, чтобы рассчитать количество страниц для разбивки на страницы.
То, что мне нужно будет в ng-repeat
было бы чем-то вроде этого
ng-repeat="element in newList.splice(start, end)" where 'newList' without splice is essentially 'filteredList'.
В этом случае вам нужно будет фильтровать список в самом Javascript.
Для вашего сценария
В вашем контроллере:
var ListA = [<some-data>];
$scope.filteredList = $filter('filter')(ListA, searchString );
$scope.filteredList = $filter('filter')($scope.filteredList, {label:searchCategory.value} );
Вы должны использовать значения фильтра при щелчке какого-либо события и пересчитать этот filterList в обработчике.
Если элементы меньше 200, вы можете реализовать прямую фильтрацию, реализуя наблюдателя в выражениях фильтра.