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 相关文章推荐
JavaScript Perfection kill 测试及答案
Mar 23 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
javascript实现列表滚动的方法
Jul 30 Javascript
JavaScript程序设计之JS调试
Dec 09 Javascript
iframe中使用jquery进行查找的方法【案例分析】
Jun 17 Javascript
jQuery实现获取隐藏div高度的方法示例
Feb 09 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
JavaScript编写的网页小游戏,很给力
Aug 18 Javascript
微信小程序实现原生步骤条
Jul 25 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
Sep 06 Javascript
如何在 Vue 表单中处理图片
Jan 26 Vue.js
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
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
商务日语毕业生自荐信
2013/11/23 职场文书
优秀生推荐信范文
2013/11/28 职场文书
高级编程求职信模板
2014/02/16 职场文书
保护水资源的标语
2014/06/17 职场文书
镇创先争优活动总结
2014/08/28 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
信息技术国培研修日志
2015/11/13 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android