angularjs - 基于分页搜索的过滤,即整个记录集
问题描述
我只能搜索当前页面记录,但是我需要搜索从服务器返回的整个记录集。这是我的代码:
<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;
}
}
解决方案
使用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
。
也一定要在分页前进行过滤。
有关详细信息,请参阅
推荐阅读
- query-optimization - 页面加载速度非常慢,重复查询此视图在 Ruby 中
- c++ - C++ 跳过登录对话框
- redis - 如何执行多哈希 redis 查询
- javascript - 如何解决总是从ajax循环选择选项值
- selenium - Selenium XPath:如何获取使用属性的 href 值
- discord.py - Discord 机器人响应不适合该机器人的 ping
- mysql - 用于从数字列中提取范围的 SQL 查询
- go - go type-switch 如何处理指向 nil
- qt - 更改桌面分辨率时,Qt showMaximized() 无法按预期工作
- c - 为什么我得到错误,虽然一切都被宣布好?