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 当前日期转化为中文的实现代码
May 13 Javascript
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
jQuery.deferred对象使用详解
Mar 18 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
Jul 01 Javascript
移动端手指放大缩小插件与js源码
May 22 Javascript
浅谈vuex之mutation和action的基本使用
Aug 29 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 Javascript
js实现无限层级树形数据结构(创新算法)
Feb 27 Javascript
vue实现简单跑马灯效果
May 25 Javascript
谈谈JavaScript中的垃圾回收机制
Sep 17 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 Javascript
微信小程序自定义底部弹出框动画
Nov 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
php 短链接算法收集与分析
2011/12/30 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JavaScript中获取元素索引的函数
2010/09/10 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
金讯Java笔试题目
2013/06/18 面试题
环境工程专业自荐信范文
2014/03/18 职场文书
学习演讲稿范文
2014/05/10 职场文书
保险专业求职信
2014/07/07 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python