AngularJS directive 实现分页包装指令
来源:互联网 发布:php 接口签名验证 编辑:程序博客网 时间:2024/06/18 08:22
AngularJS directive 分页指令
写这篇文章的主要目的是为了记录自己的学习过程,方便以后查看,当然也希望有人指点一二,互相学习。
一些angularjs directive的基础知识就不说了,直接上代码。
首先是myPagination.html
myPagination.html
<div> <nav class="pull-right"> <ul class="pagination pagination-sm"> <li ng-class="{true:'active'}[pageObject.currentPage==1]"> <a href="javascript:void(0)" ng-click="showFirstPage(1)">«</a> </li> <li ng-class="{true:'disabled'}[pageObject.currentPage==1]"> <a href="javascript:void(0);" ng-click="upPageClick(pageObject.currentPage-1)">‹</a> </li> <li ng-repeat="page in pageObject.pages" ng-class="{true:'active',false:'inactive'}[pageObject.currentPage==page]"> <a href="javascript:void(0);" ng-click="showCurrentPage(page)">{{page}}</a> </li> <li ng-class="{true:'disabled'}[pageObject.currentPage==pageObject.totalPage]"> <a href="javascript:void(0);" ng-click="downPageClick(pageObject.currentPage+1)">›</a> </li> <li ng-class="{true:'active'}[pageObject.currentPage==pageObject.totalPage]"> <a href="javascript:void(0)" ng-click="showLastPage(pageObject.totalPage)">»</a> </li> </ul> </nav></div>
diretive 内容
myPagination.js
angular.module.factory('myPaginationService',function(){ var getPageData = function(pageObject,page){ pageObject.currentPage = page; if (pageObject.currentPage > 1 && pageObject.currentPage < pageObject.totalPage) { pageObject.pages = [ pageObject.currentPage - 1, pageObject.currentPage, pageObject.currentPage + 1 ]; } else if (pageObject.currentPage == 1 && pageObject.totalPage == 1) { pageObject.pages = [ 1 ]; } else if (pageObject.currentPage == 1 && pageObject.totalPage == 2) { pageObject.pages = [ 1,2 ]; } else if (pageObject.currentPage == 1 && pageObject.totalPage > 2) { pageObject.pages = [ pageObject.currentPage, pageObject.currentPage + 1, pageObject.currentPage + 2 ]; } else if (pageObject.currentPage == pageObject.totalPage && pageObject.totalPage == 1) { pageObject.pages = [ 1 ]; } else if (pageObject.currentPage == pageObject.totalPage && pageObject.totalPage == 2) { pageObject.pages = [ 1,2 ]; } else if (pageObject.currentPage == pageObject.totalPage && pageObject.totalPage > 2) { pageObject.pages = [ pageObject.currentPage - 2, pageObject.currentPage - 1, pageObject.currentPage ]; } }; var service = { upPageClick: function(pageObject,page){ if(pageObject.currentPage == 1){ return; }; pageObject.currentPage --; getPageData(pageObject,page); }, downPageClick: function(pageObject,page){ if(pageObject.currentPage >= pageObject.totalPage){ return; }; pageObject.currentPage ++; getPageData(pageObject,page); }, showFirstPageContent: function(pageObject,page){ pageObject.currentPage = 1; getPageData(pageObject,page); }, showLastPageContent: function(pageObject,page){ pageObject.currentPage = pageObject.totalPage; getPageData(pageObject,page); }, showCurrentPageContent: function(pageObject,page){ pageObject.currentPage = page; getPageData(pageObject,page); } }; return service; }); angular.module.directive('myPagination',function(myPaginationService){ return { restrict: 'A', replace: true, scope: { pageObject:'=' }, templateUrl: 'myPagination.html', link: function(scope,element,attrs){ scope.upPageClick = function(page){ myPaginationService.upPageClick(scope.pageObject,page); //console.log(scope.pageObject.currentPage); }; scope.downPageClick = function(page){ myPaginationService.downPageClick(scope.pageObject,page); //console.log(scope.pageObject.currentPage); }; scope.showFirstPage = function(page){ myPaginationService.showFirstPageContent(scope.pageObject,page); //console.log(scope.pageObject.currentPage); }; scope.showLastPage = function(page){ myPaginationService.showLastPageContent(scope.pageObject,page); console.log(scope.pageObject.currentPage); }; scope.showCurrentPage = function(page){ myPaginationService.showCurrentPageContent(scope.pageObject,page); //console.log(scope.pageObject.currentPage); }; } }; });})
前台页面调用
<div my-pagination page-object="userPageObject"></div>
与Java后台交互
//查询用户,并分页显示 $scope.userPageObject={ currentPageList: [], //当前页面显示的数据列表 currentPage: 1, //当前页,初始化为1 totalPage: 0, //总页数 pageSize: 10, //页面大小 pages:[] //前台页面按钮显示内容 }; $scope.userSelect = {}; $scope.getAllUser=function(){ $scope.userSearch = { params:{ pageSize:$scope.userPageObject.pageSize, currentPage:$scope.userPageObject.currentPage, } }; $http.get("/api/user",$scope.userSearch).success(function(data,status,headers){ $scope.userPageObject.totalPage = headers('Page-Count'); $scope.userPageObject.currentPageList=data; }).error(function(err){ $scope.users=[]; console.log(err); }); }; $scope.getAllUser(); $scope.init = function(){ $scope.getAllUser(); $scope.$watch('userPageObject.totalPage',function(){myPaginationService.showFirstPageContent($scope.userPageObject,1);}); }; $scope.init(); $scope.$watch('userPageObject.currentPage',function(){$scope.getAllUser();}); })});
0 0
- AngularJS directive 实现分页包装指令
- AngularJs directive指令详解
- AngularJs directive指令实例
- AngularJS directive指令
- angularjs->directive(指令)
- angularjs----directive 指令
- AngularJs:Directive指令用法
- AngularJs:Directive指令用法
- angularjs 指令"directive"举例
- AngularJs:Directive指令用法
- AngularJS 刷新指令(directive)
- AngularJS Directive指令
- AngularJS clone directive 指令复制
- AngularJS之directive指令参数
- angularjs directive 指令 学习笔记
- AngularJS——directive指令
- Angularjs自定义指令(directive)
- AngularJS 的 ngSwitch 指令 (directive) 使用陷阱
- #Objective - C NSString的常用语法点总结
- Unity3D-MONO脚本自带函数执行顺序生命周期
- 后缀数组模板
- [javase学习笔记]-6.5 类类型参数与匿名对象
- Dom4j操作XML文件
- AngularJS directive 实现分页包装指令
- 使用.Net开源项目NPOI操作Excel、Word、ppt
- idea15破解
- Phaser 开发之智能提示
- Android控件之ListView(一)
- manacher模板
- Python Tornado 使用经验
- CronTrigger(转)
- wince的一些对sdk封装成c runtime库的实现