angularjs - AngularJS 中如何进行分页?

标签 angularjs pagination

我的内存中有一个包含大约 1000 个项目的数据集,并且正在尝试创建一个寻呼机 这个数据集,但我不确定如何做到这一点。

我正在使用自定义过滤器函数来过滤结果,效果很好,但不知何故我需要获取页数。

有什么线索吗?

最佳答案

Angular UI Bootstrap - 分页指令

查看UI Bootstrappagination directive 。我最终使用了它,而不是这里发布的内容,因为它有足够的功能供我当前使用,并且有一个 thorough test spec来陪伴它。

查看

<!-- table here -->

<pagination 
  ng-model="currentPage"
  total-items="todos.length"
  max-size="maxSize"  
  boundary-links="true">
</pagination>

<!-- items/page select here if you like -->

Controller

todos.controller("TodoController", function($scope) {
   $scope.filteredTodos = []
  ,$scope.currentPage = 1
  ,$scope.numPerPage = 10
  ,$scope.maxSize = 5;

  $scope.makeTodos = function() {
    $scope.todos = [];
    for (i=1;i<=1000;i++) {
      $scope.todos.push({ text:"todo "+i, done:false});
    }
  };
  $scope.makeTodos(); 

  $scope.$watch("currentPage + numPerPage", function() {
    var begin = (($scope.currentPage - 1) * $scope.numPerPage)
    , end = begin + $scope.numPerPage;

    $scope.filteredTodos = $scope.todos.slice(begin, end);
  });
});

我做了一个working plunker供引用。

<小时/>

旧版本:

查看

<!-- table here -->

<div data-pagination="" data-num-pages="numPages()" 
  data-current-page="currentPage" data-max-size="maxSize"  
  data-boundary-links="true"></div>

<!-- items/page select here if you like -->

Controller

todos.controller("TodoController", function($scope) {
   $scope.filteredTodos = []
  ,$scope.currentPage = 1
  ,$scope.numPerPage = 10
  ,$scope.maxSize = 5;

  $scope.makeTodos = function() {
    $scope.todos = [];
    for (i=1;i<=1000;i++) {
      $scope.todos.push({ text:"todo "+i, done:false});
    }
  };
  $scope.makeTodos(); 

  $scope.numPages = function () {
    return Math.ceil($scope.todos.length / $scope.numPerPage);
  };

  $scope.$watch("currentPage + numPerPage", function() {
    var begin = (($scope.currentPage - 1) * $scope.numPerPage)
    , end = begin + $scope.numPerPage;

    $scope.filteredTodos = $scope.todos.slice(begin, end);
  });
});

我做了一个working plunker供引用。

关于angularjs - AngularJS 中如何进行分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816073/

相关文章:

php 分页 - 如何限制显示的页面数

jquery - AngularJS - 样式不适用于附加的 html

javascript - 如何在一页中定义两个 Angular 应用程序/模块?

javascript - Angular Controller 在 window.history.pushstate 之后不工作

javascript - 使用 Jquery 的 AJAX 分页插件

java - 除了 Spring boot 一次输入的 Pageable 和 Sort 之外,对所有参数使用 @Param

css - Angular SlickGrid 是否可以使用分页并根据值设置行颜色?

angularjs - 使用来自另一个模块的子 Controller

javascript - 在 Angular/Ionic 应用程序中保持标题固定在滚动条上

javascript - Angular 分页,通过 Controller 设置首页