Angularjs 实现分页功能及示例代码


Posted in Javascript onSeptember 14, 2016

基于Angularjs实现分页

前言

       学习任何一门语言前肯定是有业务需求来驱动你去学习它,当然ng也不例外,在学习ng前我第一个想做的demo就是基于ng实现分页,除去基本的计算思路外就是使用指令封装成一个插件,在需要分页的列表页面内直接引用。

插件

      在封装分页插件时我实现了几种方式总体都比较零散,最后找到了一个朋友(http://www.miaoyueyue.com/archives/813.html)封装的插件,觉还不错,读了下他的源码就直接在项目中使用了。

原理和使用说明

      1、插件源码主要基于angular directive来实现。

      2、调用时关键地方是后台请求处理函数,也就是从后台取数据。

      3、插件有两个关键参数currentPage、itemsPerPage,当前页码和每页的记录数。

      4、实现方法调用后我们需要根据每次点击分页插件页码时重新提交后台来获取相应页码数据。 在调用的页码中我使用了$watch来监控。  我初次使用时是把调用函数放在了插件的onchange中,结果发现每次都会触发两次后台。这个地方需要注意。

      5、我把请求后台封装成了Service层,然后在Controller里调用,也符合MVC思想。

效果图

Angularjs 实现分页功能及示例代码
 

调用代码

<div ng-app="DemoApp" ng-controller="DemoController">
 <table class="table table-striped">
  <thead>
   <tr>
    <td>ID</td>
    <td>FirstName</td>
    <td>LastName</td>
    <td>Status</td>
    <td>Address</td>
   </tr>
  </thead>
  <tbody>
   <tr ng-repeat="emp in persons">
    <td>{{emp.ID}}</td>
    <td>{{emp.FirstName}}</td>
    <td>{{emp.LastName}}</td>
    <td>{{emp.Status}}</td>
    <td>{{emp.Address}}</td>
   </tr>
  </tbody>
 </table>
 <tm-pagination conf="paginationConf"></tm-pagination>
</div>
<script type="text/javascript">
 var app = angular.module('DemoApp', ['tm.pagination']);
 
 app.controller('DemoController', ['$scope', 'BusinessService', function ($scope, BusinessService) {
 
  var GetAllEmployee = function () {
 
   var postData = {
    pageIndex: $scope.paginationConf.currentPage,
    pageSize: $scope.paginationConf.itemsPerPage
   }
 
   BusinessService.list(postData).success(function (response) {
    $scope.paginationConf.totalItems = response.count;
    $scope.persons = response.items;
   });
 
  }
 
  //配置分页基本参数
  $scope.paginationConf = {
   currentPage: 1,
   itemsPerPage: 5
  };
 
  /***************************************************************
  当页码和页面记录数发生变化时监控后台查询
  如果把currentPage和itemsPerPage分开监控的话则会触发两次后台事件。
  ***************************************************************/
  $scope.$watch('paginationConf.currentPage + paginationConf.itemsPerPage', GetAllEmployee);
 }]);
 
 
 //业务类
 app.factory('BusinessService', ['$http', function ($http) {
  var list = function (postData) {
   return $http.post('/Employee/GetAllEmployee', postData);
  }
 
  return {
   list: function (postData) {
    return list(postData);
   }
  }
 }]);
</script>

 插件和Demo下载

http://yunpan.cn/cQEhnLrpnkniQ  访问密码 be74

以上就是AngularJS 实现分页功能的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
js Dialog 实践分享
Oct 22 Javascript
AngularJS入门之动画
Jul 27 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
Oct 11 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
canvas绘制多边形
Feb 24 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
JScript实现地址选择功能
Aug 15 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
原生js实现each方法实例代码详解
May 27 Javascript
Js图片点击切换轮播实现代码
Jul 27 Javascript
Angularjs CURD 详解及实例代码
Sep 14 #Javascript
Angular Module声明和获取重载实例代码
Sep 14 #Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
Sep 14 #Javascript
Angular 应用技巧总结
Sep 14 #Javascript
AngularJS 所有版本下载地址
Sep 14 #Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 #Javascript
Angularjs 制作购物车功能实例代码
Sep 14 #Javascript
You might like
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
javascript正则表达式总结
2016/02/29 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
Python 数据结构之堆栈实例代码
2017/01/22 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python模糊图片过滤的方法
2018/12/14 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
世界遗产导游词
2015/02/13 职场文书
介绍信格式样本
2015/05/05 职场文书