1. ホーム
  2. angularjs

[解決済み】AngularJSでページングを行うには?

2022-04-05 14:21:54

質問

約1000アイテムのデータセットがインメモリにあり、ページャーを作成しようとしています。 しかし、その方法がよくわかりません。

カスタムフィルター関数を使用して結果をフィルタリングしていますが、うまくいっています。

何か手がかりはありますか?

解決方法は?

Angular UI Bootstrap - Pagination ディレクティブ

チェックアウト UI Bootstrap 's ページングディレクティブ . 結局、ここに掲載されているものよりも、私の今の使い方には十分な機能があり、かつ 徹底的なテスト仕様 を追加しました。

表示

<!-- table here -->

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

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

コントローラ

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

を作りました。 ワーキングプランカー 参考までに


レガシーバージョンです。

表示

<!-- 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 -->

コントローラ

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

を作りました。 ワーキングプランカー 参考までに