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计算页面执行时间的函数
Dec 07 Javascript
JavaScript中的Document文档对象
Jan 16 Javascript
JS 判断undefined的实现代码
Nov 26 Javascript
基于JQuery实现相同内容合并单元格的代码
Jan 12 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
Jan 02 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
jQuery多个input求和的实现方法
Feb 12 Javascript
React Native实现简单的登录功能(推荐)
Sep 19 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
详解基于element的区间选择组件校验(交易金额)
Jan 07 Javascript
简单聊聊Vue中的计算属性和属性侦听
Oct 05 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP安全配置
2006/10/09 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
python3 mmh3安装及使用方法
2019/10/09 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
pytorch的batch normalize使用详解
2020/01/15 Python
Python实现验证码识别
2020/06/15 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
上海天奕面试题笔试题
2015/04/19 面试题
运动会100米解说词
2014/01/23 职场文书
老师对学生的寄语
2014/04/09 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
个园导游词
2015/02/04 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
2015年财政局工作总结
2015/05/21 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
会计入职心得体会
2016/01/22 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS