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小游戏(不含网游)
Jun 12 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
使用Jquery实现每日签到功能
Apr 03 Javascript
简述JavaScript对传统文档对象模型的支持
Jun 16 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
Oct 28 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
Jul 19 Javascript
如何阻止移动端浏览器点击图片浏览
Aug 29 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
PHP&amp;MYSQL服务器配置说明
2006/10/09 PHP
如何写php程序?
2006/12/08 PHP
php MySQL与分页效率
2008/06/04 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
python脚本实现查找webshell的方法
2014/07/31 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
Django框架多表查询实例分析
2018/07/04 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
Python面向对象封装操作案例详解
2019/12/31 Python
Python实现手势识别
2020/10/21 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
最新奶茶店创业计划书范文
2014/02/08 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
秋菊打官司观后感
2015/06/03 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python