基于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 相关文章推荐
基于JQuery实现相同内容合并单元格的代码
Jan 12 Javascript
浅谈Javascript鼠标和滚轮事件
Jun 27 Javascript
struts2+jquery+json实现异步加载数据(自写)
Jun 24 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
js调试系列 控制台命令行API使用方法
Jun 18 Javascript
javascript中html字符串转化为jquery dom对象的方法
Aug 27 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
JavaScript编码风格指南(中文版)
Aug 26 Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
vue使用Element组件时v-for循环里的表单项验证方法
Jun 28 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
Dec 09 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 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
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
jquery实现动态画圆
2014/12/04 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python实现复制文件到指定目录
2019/10/16 Python
python实现局域网内实时通信代码
2019/12/22 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
超市开店计划书
2014/04/26 职场文书
文体活动总结范文
2014/05/05 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript