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 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
Jquery中显示隐藏的实现代码分析
Jul 26 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
javascript自动切换焦点控制效果完整实例
Feb 02 Javascript
简介BootStrap model弹出框的使用
Apr 27 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
AngularJS基础 ng-model 指令详解及示例代码
Aug 02 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
Dec 13 Javascript
vue项目中极验验证的使用代码示例
Dec 03 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
Vue scoped及deep使用方法解析
Aug 01 Javascript
使用Vant完成Dialog弹框案例
Nov 11 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php遍历目录viewDir函数
2009/12/15 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
实时获取Python的print输出流方法
2019/01/07 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python调用私有属性的方法总结
2020/07/24 Python
Python连接Impala实现步骤解析
2020/08/04 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
毕业生求职的求职信
2013/12/05 职场文书
《尊严》教学反思
2014/02/11 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
医学专业自荐信
2014/06/14 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
Golang流模式之grpc的四种数据流
2022/04/13 Golang