基于Angularjs实现分页功能


Posted in Javascript onMay 30, 2016

前言

学习任何一门语言前肯定是有业务需求来驱动你去学习它,当然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>

以上内容是小编给大家介绍的基于Angularjs实现分页功能的实例代码,希望对大家有所帮助!

Javascript 相关文章推荐
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
Feb 03 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
Jun 28 Javascript
详解angularJS自定义指令间的相互交互
Jul 05 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
js隐式转换的知识实例讲解
Sep 28 Javascript
JavaScript实现学生在线做题计时器功能
Dec 05 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 Javascript
js实现双人五子棋小游戏
May 28 Javascript
AngularJs实现分页功能不带省略号的代码
May 30 #Javascript
JS组件Bootstrap Select2使用方法解析
May 30 #Javascript
AngularJs表单验证实例详解
May 30 #Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 #Javascript
jquery获取form表单input元素值的简单实例
May 30 #Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 #Javascript
使用JQuery 加载页面时调用JS的实现方法
May 30 #Javascript
You might like
PHPMailer邮件发送的实现代码
2013/05/04 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python实现简单的四则运算计算器
2016/11/02 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
最新会计专业求职信范文
2014/01/28 职场文书
社区安全检查制度
2014/02/03 职场文书
会计专业自我评价
2014/02/12 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
党委班子对照检查材料
2014/08/19 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS