基于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 相关文章推荐
两个JavaScript jsFiddle JSBin在线调试器
Mar 14 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
Jquery中获取iframe的代码
Jan 11 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
js实现上传图片及时预览
May 07 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
vuex 使用文档小结篇
Jan 11 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
angular1.x ui-route传参的三种写法小结
Aug 31 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
PHP网上调查系统
2006/10/09 PHP
文件系统基本操作类
2006/11/23 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
人事任命书格式
2014/06/05 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
新生入学欢迎词
2015/01/26 职场文书
班主任寄语2015
2015/02/26 职场文书