我的内存中有一个包含大约 1000 个项目的数据集,并且正在尝试创建一个寻呼机 这个数据集,但我不确定如何做到这一点。
我正在使用自定义过滤器函数来过滤结果,效果很好,但不知何故我需要获取页数。
有什么线索吗?
最佳答案
Angular UI Bootstrap - 分页指令
查看UI Bootstrap的pagination 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/