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同时提交多个Web表单的方法
Dec 26 Javascript
锋利的jQuery jQuery中的DOM操作
Mar 21 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
Aug 09 Javascript
深入理解JavaScript高级之词法作用域和作用域链
Dec 10 Javascript
jQuery源码分析之jQuery中的循环技巧详解
Sep 06 Javascript
jquery特效 点击展示与隐藏全文
Dec 09 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
Mar 03 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 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
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
PHP生成压缩文件实例
2015/02/07 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
javascript表单验证大全
2015/08/12 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
Python continue语句用法实例
2014/03/11 Python
使用python实现strcmp函数功能示例
2014/03/25 Python
浅谈MySQL中的触发器
2015/05/05 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python reduce()函数的用法小结
2017/11/15 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
Python3多线程基础知识点
2019/02/19 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
实现向右循环移位
2014/07/31 面试题
怎样写留学自荐信
2013/11/11 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书