angularUI bootstrap提供的分頁插件滿足了大部分應用的需求,具體內容如下
在項目需求中,新增了兩個需求:
1.自由設定每頁顯示的條目;
2.可以手動輸入頁面,跳轉到指定的頁數。
html代碼
<div class="pagination-define p20 mt20" ng-hide="totalItems==0"> <select ng-model="perPageSize" ng-change="pageChanged({currentPage:currentPage,perPageSize:perPageSize})" >  <option value=10 ng-selected="perPageSize==10">10</option>  <option value=20>20</option>  <option value=30>30</option>  <option value=50>50</option>  <option value=100>100</option> </select> <uib-pagination items-per-page="numPerPage" total-items="totalItems" ng-model="currentPage" ng-change="pageChanged({currentPage:currentPage,perPageSize:perPageSize})" max-size="5" class="pagination-sm" boundary-link-numbers="true" boundary-links="true" rotate="false" previous-text="‹" next-text="›" first-text="«" last-text="»"></uib-pagination> <input type="text" ng-model="inputCurPage" min=1 cus-max-number ="{{maxPages}}" current-page="{{currentPage}}"> <button class="btn btn-info btn-30h" ng-click="pageChanged({currentPage:inputCurPage,perPageSize:perPageSize})" ng-disabled="inputCurPage==''||submitting">Go</button></div>css代碼
.pagination-define{ text-align: center}.pagination-define input, .pagination-define select { padding-left: 3px; height: 30px; vertical-align: top; border: 1px solid #ccc; border-radius: 4px; width: 50px;}.pagination { margin: 0;}.pagination-define .btn-30h { vertical-align: top;}.btn-30h { padding-top: 4px; padding-bottom: 4px;}Javascript代碼
app.directive('cusMaxNumber', ['$timeout', function ($timeout) {  return {   restrict: 'EA',   require: 'ngModel',   scope: {    maxNumber: '@cusMaxNumber',    currentPage: '@currentPage'   },   link: function (scope, element, attr, ctrl) {    ctrl.$parsers.push(function (viewValue) {     var maxNumber = parseInt(scope.maxNumber, 10);     var curNumber = scope.currentPage; //當前頁數     var transformedInput = viewValue.replace(/[^0-9]/g, '');     if (transformedInput !== viewValue||parseInt(transformedInput,10)<1||parseInt(transformedInput,10)>maxNumber) {      ctrl.$setViewValue(curNumber);      ctrl.$render();      return curNumber;     }     return viewValue;    });   }  }; }]).directive('cusPagination',[function(){  return {   restrict: "E",   templateUrl: 'views/template/pagination.html',   scope: {    numPerPage: "=numPerPage",    totalItems: "=totalItems",    currentPage: "=cusCurrentPage",    perPageSize:"=perPageSize",    inputCurPage:"=inputCurPage",    maxPages:"=maxPages",    pageChanged: "&pageChanged"   },   replace: false  }; }]);以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選