基于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与asp.net(c#)互相调用方法
Dec 13 Javascript
Javascript中获取出错代码所在文件及行数的代码
Sep 23 Javascript
jquery.qrcode在线生成二维码使用示例
Aug 21 Javascript
jQuery+easyui中的combobox实现下拉框特效
Feb 27 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
jquery实现倒计时功能
Dec 28 Javascript
超实用的JavaScript表单代码段
Feb 26 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
Dec 25 Javascript
Node.js五大应用性能技巧小结(必须收藏)
Aug 09 Javascript
教你用Cordova打包Vue项目的方法
Oct 17 Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
ES6 解构赋值的原理及运用
May 25 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 file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
python清除字符串里非数字字符的方法
2015/07/02 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Django forms组件的使用教程
2018/10/08 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
Django实现基于类的分页功能
2019/10/31 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
应届生服务员求职信
2013/10/31 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
党员四风剖析材料
2014/08/27 职场文书
交通事故代理词范文
2015/05/23 职场文书
火烧圆明园观后感
2015/06/03 职场文书
教师节主题班会教案
2015/08/17 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技