1 <div class=" panel-default ng-cloak ng-table-pager" style="clear:both;padding-left:0px;margin-top:-30px;height:50px;max-width: 1200px;"> 2 <div class="ng-table-counts btn-group pull-right" style="padding-left:30px;"> 3 <span>每页显示</span> 4 5 <select ng-model="pageSize" id="itemType" ng-change="setpageSize()" style="width: 110px; padding: 5px;height: 35px;"> 6 <option ng-repeat="x in pageSizeList" ng-selected="x == pageSize">{{x}}</option> 7 </select> 8 9 <span>条数据</span> 10 </div> 11 <div data-ng-if="pages.length" class="ng-table-counts btn-group pull-right"> 12 <ul class="pagination ng-table-pagination" style="margin-top:0px;"> 13 <li data-ng-class="{'active': !page.active && page.type != 'more' }" data-ng-repeat="page in pages" data-ng-switch="page.type"> 14 <a data-ng-switch-when="prev" data-ng-click="gotoPage(page.number)" href=""> « </a> 15 <a data-ng-switch-when="first" data-ng-click="gotoPage(page.number)" href=""><span data-ng-bind="page.number"></span></a> 16 <a data-ng-switch-when="page" data-ng-click="gotoPage(page.number)" href=""><span data-ng-bind="page.number"></span></a> 17 <a data-ng-switch-when="more" href="">…</a> 18 <a data-ng-switch-when="last" data-ng-click="gotoPage(page.number)" href=""><span data-ng-bind="page.number"></span></a> 19 <a data-ng-switch-when="next" data-ng-click="gotoPage(page.number)" href=""> » </a></li> 20 </ul> 21 </div> 22 23 </div>
define(["app", "bootstrapJs" ],function (app) { var deps = ["$scope","$rootScope","$modal", "$state", "$stateParams"]; function controller($scope,$rootScope,$modal, $state, $stateParams) { $scope.docItemList = []; $scope.currentPage = $rootScope.docIndexCurrentPage || 1; $scope.pageSize = 10; $scope.pageSizeList = [10,20,50,100,200]; function queryDocFileList(){ AlicebotResource.queryDocFileList($scope.showItemId,$scope.currentPage,$scope.pageSize).success(function(data){ $scope.docItemList = data.docItemList;
// data.total ———— 查询信息的总条目数
generatePagesArray($scope, data.total); }); } queryDocMenue(); /** * 点击某一页 * @param page */ $scope.gotoPage = function(page){ $scope.currentPage = page; $rootScope.docIndexCurrentPage = $scope.currentPage; queryDocFileList(); }; $scope.nextPage = function(){ $scope.currentPage++; $rootScope.docIndexCurrentPage = $scope.currentPage; queryDocFileList(); }; $scope.upPage = function(){ $scope.currentPage--; $rootScope.docIndexCurrentPage = $scope.currentPage; queryDocFileList(); }; $scope.setpageSize = function(){ $scope.currentPage = 1; $rootScope.docIndexCurrentPage = $scope.currentPage; queryDocFileList(); } } /** * 分页计算设置 */ function generatePagesArray($scope, totalItems) { var maxBlocks, maxPage, maxPivotPages, minPage, numPages; maxBlocks = 11; $scope.pages = []; numPages = Math.ceil(totalItems / $scope.pageSize); if (numPages > 1) { if($scope.currentPage != 1){ $scope.pages.push({ type: 'prev', currentNum : $scope.currentPage, number: Math.max(1, $scope.currentPage - 1), active: $scope.currentPage > 1 }); } $scope.pages.push({ type: 'first', currentNum : $scope.currentPage, number: 1, active: $scope.currentPage > 1 }); maxPivotPages = Math.round((maxBlocks - 5) / 2); minPage = Math.max(2, $scope.currentPage - maxPivotPages); maxPage = Math.min(numPages - 1, $scope.currentPage + maxPivotPages * 2 - ($scope.currentPage - minPage)); minPage = Math.max(2, minPage - (maxPivotPages * 2 - (maxPage - minPage))); var i = minPage; while (i <= maxPage) { if ((i === minPage && i !== 2) || (i === maxPage && i !== numPages - 1)) { $scope.pages.push({ type: 'more', active: false }); } else { $scope.pages.push({ type: 'page', number: i, currentNum : $scope.currentPage, active: $scope.currentPage !== i }); } i++; } $scope.pages.push({ type: 'last', number: numPages, currentNum : $scope.currentPage, active: $scope.currentPage !== numPages }); if($scope.currentPage < numPages){ $scope.pages.push({ type: 'next', currentNum : $scope.currentPage, number: Math.min(numPages, $scope.currentPage + 1), active: $scope.currentPage < numPages }); } } } controller.$inject = deps; return app.lazy.controller("DocIndexController", controller); });
带样式效果图: