用angular的指令实现页码组件
来源:互联网 发布:linux中文显示方框 编辑:程序博客网 时间:2024/06/05 02:35
前一阵子,在angular的项目里需要用到页码,虽然找了很多,页码实现的源码。但都不能很好地解决我的需求。
于是,干脆乎,自己写一个页码指令。
hjcr.directive('pagination',function(){ return{ restrict:'E', scope:{ currentPage:'=', totalPage:'=', getRecord:'&' }, link:function($scope,element,attrs){ }, controller:function($scope, $element, $attrs){ $scope.index = 0; $scope.pages =[]; $scope.$watch('totalPage',function(){ if($scope.totalPage<=5){ for (var i = 0; i < $scope.totalPage; i++) { $scope.pages[i] = i+1; } } $scope.$watch('index',function(){ if($scope.totalPage>5){ for (var i = 0; i < 5; i++) { $scope.pages[i] = $scope.index+i+1; } } }) }); $scope.$watch('currentPage',function(newValue, oldValue){ $scope.currentPage = newValue; if(newValue!=oldValue){ $scope.getRecord(); } }); $scope.prev = function(){ if($scope.currentPage>1){ $scope.currentPage--; if($scope.pages[0]!=1) {$scope.index--;} } } $scope.next = function(){ if ($scope.currentPage<$scope.totalPage) { $scope.currentPage++; if($scope.pages[4] != $scope.totalPage) {$scope.index++;} } } $scope.toFirst = function(){$scope.currentPage = 1;$scope.index=0;} $scope.toEnd = function(){$scope.currentPage = $scope.totalPage;$scope.index=$scope.totalPage-5;} $scope.prevSize = function(){ if($scope.pages[0]-5<1){ $scope.index = 0; $scope.currentPage = $scope.index+3; } else { $scope.index = $scope.pages[0]-6; $scope.currentPage = $scope.currentPage-5; } } $scope.nextSize = function(){ if ($scope.pages[4]+5>$scope.totalPage) { $scope.index = $scope.totalPage-5; $scope.currentPage = $scope.index+3; } else { $scope.index = $scope.pages[0]+4; $scope.currentPage = $scope.currentPage+5; } } $scope.jump = function(page){ $scope.currentPage = page; } }, template: '<ul class="pagination" style="margin-top:20px;">'+ '<li ng-click="toFirst()" ng-class="currentPage===1?\'disabled\':\'\'"><a>首页</a></li>'+ '<li ng-show="totalPage>5" ng-click="prevSize()" ng-class="pages[0]===1?\'disabled\':\'\'"><a><i class="fa fa-backward"></i></a></li>'+ '<li ng-click="prev()" ng-class="currentPage===1?\'disabled\':\'\'"><a><i class="fa fa-chevron-left"></i></a></li>'+ '<li ng-click="jump(page)" ng-class="currentPage==page?\'active\':\'\'" ng-repeat="page in pages"><a>{{page}}</a></li>'+ '<li ng-click="next()" ng-class="currentPage===totalPage?\'disabled\':\'\'"><a><i class="fa fa-chevron-right"></i></a></li>'+ '<li ng-show="totalPage>5" ng-click="nextSize()" ng-class="pages[4]===totalPage?\'disabled\':\'\'"><a><i class="fa fa-forward"></i></a></li>'+ '<li ng-click="toEnd()" ng-class="currentPage===totalPage?\'disabled\':\'\'"><a>尾页</a></li>'+ '</ul>' }});
使用如下
<pagination ng-if="totalPage>1" current-page="currentPage" total-page="totalPage" get-record="getRecord()"></pagination>
传入三个参数:当前页码,总页数,调用页码的函数
阅读全文
0 0
- 用angular的指令实现页码组件
- angular实现的面板组件
- angular的基本指令
- angular的指令
- Angular强大的指令
- Angular的内置指令
- angular 指令的问题
- angular的指令
- Angular自定义指令实现一般性的表单验证
- Angular的Table 组件
- 关于Angular 指令的理解
- Angular 比较常用的指令
- angular创建自定义的指令
- angular指令间的交互
- Angular 比较常用的指令
- angular指令和指令之间的交互
- jsp中页码的实现
- jquery函数转为angular指令实现示例
- phpcms后台登陆提示验证码错误
- Angular开发-ngx-bootstrap的UI组件介绍
- DiskLruCache本地缓存
- Java邮件开发-电子邮件的基本知识(一)
- 摄像机的坐标变换
- 用angular的指令实现页码组件
- EM算法
- WNMP环境搭建
- Centos进行yum报FatalPythonerror:pycurl: libcurl link-time version is older than compile-time version
- dxf的DIMSTY尺寸标注格式
- bnu13376 Lucky Tickets
- python 正则表达式
- SpringMVC 常用的注解详解
- 551. Student Attendance Record I