基于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 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
通过JAVAScript实现页面自适应
Jan 19 Javascript
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
May 25 Javascript
JavaScript 变量命名规则
Sep 23 Javascript
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
jquery通过a标签删除table中的一行的代码
Dec 02 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
Mar 11 Javascript
Bootstrap Search Suggest使用例子
Dec 21 Javascript
vue使用 better-scroll的参数和方法详解
Jan 25 Javascript
JS 实现分页打印功能
May 16 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 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
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
浅谈Angular路由守卫
2017/08/26 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python unittest单元测试框架总结
2018/09/08 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
公益活动策划方案
2014/01/09 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android