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 相关文章推荐
JS 常用校验函数
Mar 26 Javascript
jquery里的each使用方法详解
Dec 22 Javascript
Javascript面向对象编程
Mar 18 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
Javascript缓存API
Jun 14 Javascript
js实现带三角符的手风琴效果
Mar 01 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
Vue项目全局配置微信分享思路详解
May 04 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 Javascript
threejs太阳光与阴影效果实例代码
Apr 05 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
php提示undefined index的几种解决方法
2012/05/21 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python logging模块handlers用法详解
2020/08/14 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
父母寄语大全
2014/04/12 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
2014年文秘工作总结
2014/11/25 职场文书
七一慰问简报
2015/07/20 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技