Фильтрация на основе поиска с разбиением на страницы, то есть по всему набору записей - PullRequest
0 голосов
/ 17 мая 2019

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

<tr ng-repeat="brt in $parent.visibleBrtList = (currBrtList 
            | orderBy: state.orderBy : state.reverseOrderByDirection 
            | filter: pageFilter(state.page, state.itemsPerPage)
            | filter: searchKeyword) ">

Я также пытался изменить его так:

<tr ng-repeat="brt in currBrtList
            | filter: pageFilter(state.page, state.itemsPerPage)
            | filter: searchKeyword">

currBrtList имеет 200 записей, itemsPerPage равно 10.

ВотФункция pageFilter:

 $scope.pageFilter = function() {
    var from = $scope.state.page * $scope.state.itemsPerPage;
    var to = from + $scope.state.itemsPerPage;
    return function(item, index) {
        return index >= from && index < to;
    }
}

1 Ответ

0 голосов
/ 18 мая 2019

Используйте фильтр limitTo для разбивки на страницы:

<tr ng-repeat="brt in currBrtList
            | orderBy: state.orderBy : state.reverseOrderByDirection
            | filter: searchKeyword
            ̶|̶ ̶f̶i̶l̶t̶e̶r̶:̶ ̶p̶a̶g̶e̶F̶i̶l̶t̶e̶r̶(̶s̶t̶a̶t̶e̶.̶p̶a̶g̶e̶,̶ ̶s̶t̶a̶t̶e̶.̶i̶t̶e̶m̶s̶P̶e̶r̶P̶a̶g̶e̶)̶
            | limitTo: state.itemsPerPage : state.page*state.itemsPerPage" > 

Первый аргумент - limit;второй, begin.

Также обязательно отфильтруйте до нумерации страниц.

Для получения дополнительной информации см.

...