当前位置: 首页 > 面试题库 >

限制和偏移数据在AngularJS中进行分页

长孙正卿
2023-03-14
问题内容

当调用支持它们的外部数据资源时,AngularJS是否具有Limit和Offset请求方法?

我想象有一个比这更优雅的解决方案,我通过routeParams传递限制和偏移量:

function ListCtrl($scope, $http, $routeParams) {
$http.jsonp('http://www.example.com/api/list.jsonp?callback=JSON_CALLBACK&limit=' + $routeParams.limit + '&offset=' + $routeParams.offset,{callback: 'JSON_CALLBACK'}).success(function(data) {
$scope.list = data;
  });
}

问题答案:

完整的分页解决方案是:(1)与服务器/数据库进行通信的服务;(2)处理next / prev的指令;以及(3)将其粘合在一起的控制器。

一旦有了指令和服务,您的控制器就是这样简单:

app.controller('MainCtrl', function($scope, myData) {
  $scope.numPerPage = 5;
  $scope.noOfPages = Math.ceil(myData.count() / $scope.numPerPage);
  $scope.currentPage = 1;

  $scope.setPage = function () {
    $scope.data = myData.get( ($scope.currentPage - 1) * $scope.numPerPage, $scope.numPerPage );
  };

  $scope.$watch( 'currentPage', $scope.setPage );
});

使用同样简单的HTML:

<body ng-controller="MainCtrl">
  <ul>
    <li ng-repeat="item in data">{{item.name}}</li>
  </ul>
  <pagination num-pages="noOfPages" current-page="currentPage" class="pagination-small"></pagination>
</body>

这是完整的Plunker:http
://plnkr.co/edit/Mg0USx?p=preview 。它使用ui-
bootstrap
的分页指令,该指令正在进行中。



 类似资料:
  • 我希望用户能够在我的查询方法中指定限制(返回量的大小)和偏移量(返回的第一条记录/返回的索引)。 这里是我没有任何分页功能的类。我的实体: 我的仓库: 我的服务界面: 我的服务实施: 现在,我尝试提供支持偏移和限制的分页功能。我的实体类保持不变。 我的“新”存储库接受一个可分页的参数: 我的“新”服务接口包含两个附加参数: 我的“新”服务实现: 然而,这不是我想要的。PageRequest指定页面

  • 问题内容: 我想构造一个查询,在表中显示所有结果,但是从表的开头偏移5。据我所知,MySQL 需要一个限制和一个偏移量。有什么办法吗? 问题答案: 从LIMIT的MySQL手册: 要检索从某个偏移量到结果集结尾的所有行,可以为第二个参数使用较大的数字。该语句检索从第96行到最后一行的所有行:

  • 问题内容: 我有一个内存中大约有1000个项目的数据集,正在尝试为此数据集创建一个传呼机,但是我不确定如何执行此操作。 我使用的是自定义过滤器功能来过滤结果,效果很好,但是以某种方式我需要获取页面数。 有什么线索吗? 问题答案: 查看UI Bootstrap的分页指令。我最终使用了它,而不是使用此处发布的内容,因为它具有当前使用的足够功能,并且具有详尽的测试规范。 视图 控制者 我做了一个工作的小

  • 我试图在AngularJS中使用DataList渲染大约2000个值(通过API调用)。问题是这些值使页面变得如此缓慢。有没有一种方法,我可以在一次只呈现10个项目,因为它是一个数据管理器,可能会显示匹配的结果,当我们键入限制为10。 这是我的密码笔:https://codepen.io/anon/pen/KyEXMr