基于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的事件绑定(方便不支持js的时候)
Oct 01 Javascript
巧用replace将文字表情替换为图片
Apr 17 Javascript
AngularJS语法详解
Jan 23 Javascript
Sort()函数的多种用法
Mar 20 Javascript
AngularJS+Bootstrap实现多文件上传与管理
Nov 08 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 Javascript
bootstrap PrintThis打印插件使用详解
Feb 20 Javascript
微信小程序商城项目之购物数量加减(3)
Apr 17 Javascript
详解Vue.use自定义自己的全局组件
Jun 14 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
Aug 08 Javascript
vue实现在v-html的html字符串中绑定事件
Oct 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
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
js获取Get值的方法
2016/09/29 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
python相似模块用例
2016/03/04 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python 如何调用 dubbo 接口
2020/09/24 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
美国家居装饰店:Pier 1
2019/09/04 全球购物
知识竞赛活动方案
2014/02/18 职场文书
安全教育月活动总结
2014/05/05 职场文书
小组名称和口号
2014/06/09 职场文书
聘用合同范本
2015/09/21 职场文书
mysql 索引合并的使用
2021/08/30 MySQL