【问题标题】:Filtering based on search with Pagination i.e. on entire set of records基于分页搜索的过滤,即整个记录集
【发布时间】:2019-10-04 10:53:11
【问题描述】:

我只能搜索当前页面记录,但是我需要搜索从服务器返回的整个记录​​集。这是我的代码:

<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;
    }
}

【问题讨论】:

    标签: angularjs pagination


    【解决方案1】:

    使用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

    还要确保在分页之前过滤

    有关详细信息,请参阅

    【讨论】:

    • 您好,谢谢您,我会尝试实施。但是,您能解释一下分页前过滤器是什么意思吗?我认为这是重要的部分。抱歉,我对 Angular 很陌生
    • 如果代码在limitTo分页之后过滤列表,你会得到没有数据的页面,因为数据已经被过滤掉了,
    • 谢谢它的工作.. 没有意识到过滤器的顺序这么重要:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2017-09-22
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多