angular.js分页代码的实例
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。现在在学习angular,使用angularjs 分页,基于 directive 实现,样式使用的 bootstrap,直接在 html代码中加入 标签即可调用。
先来看下效果图

实例代码
app.directive('pagePagination', function(){
return {
restrict : 'E',
template : '<div class="pagination-box"><ul class="pagination"><li ng-class="page.style" ng-repeat="page in pageList"><a href="{{ page.link }}">{{ page.name }}</a></li></ul><ul class="pagination" ng-if="pageList[0]"><li class="page-count disabled"><span>共 <b>{{ pageRecord }}</b> 条记录 / 共 <b>{{ pageCount }}</b> 页</span></li></ul></div>',
replace : true,
scope : {
"pageId" : "=",
"pageRecord" : "=",
"pageSize" : "=",
"pageUrlTemplate" : "="
},
controller : ['$scope', function($scope){
$scope.getLink = function(pageId){
return $scope.pageUrlTemplate.replace("{PAGE}", pageId);
};
$scope.getPageList = function(){
var page = [];
var firstPage = parseInt(( $scope.pageId - 1 ) / $scope._pageSize ) * $scope._pageSize + 1;
page.push({
name : '首页',
style : $scope.pageId == 1 ? "disabled" : "",
link : $scope.getLink(1)
});
page.push({
name : '上一页',
style : $scope.pageId == 1 ? "disabled" : "",
link : $scope.getLink(1)
});
for( var pageId = firstPage; pageId < firstPage + 10; pageId ++){
if( pageId >= 1 && pageId <= $scope.pageCount ){
page.push({
name : pageId,
link : $scope.getLink(pageId),
style : pageId == $scope.pageId ? "active" : ""
});
}
}
page.push({
name : '下一页',
style : $scope.pageId == $scope.pageCount ? "disabled" : "",
link : $scope.getLink($scope.pageCount)
});
page.push({
name : '尾页',
style : $scope.pageId == $scope.pageCount ? "disabled" : "",
link : $scope.getLink($scope.pageCount)
});
return page;
};
$scope.pageInit = function(){
if( !$scope.pageId || !$scope.pageRecord ){
setTimeout(function(){
$scope.$apply(function(){
$scope.pageInit();
});
}, 10);
}else{
if( !!$scope.pageSize ){
$scope._pageSize = parseInt($scope.pageSize);
}else{
$scope._pageSize = 10;
}
$scope.pageId = parseInt($scope.pageId);
$scope.pageCount = parseInt(( $scope.pageRecord - 1 ) / $scope._pageSize ) + 1;
if( $scope.pageId < 1 ){
$scope.pageId = 1;
}else if( $scope.pageId > $scope.pageCount ){
$scope.pageId = $scope.pageCount;
}
$scope.pageLoad = true;
$scope.pageList = $scope.getPageList();
}
};
$scope.pageLoad = false;
$scope.pageInit();
}]
}
});
调用代码:
<page-pagination
page-id="pageId"
page-record="recordCount"
page-url-template="urlTemplate">
</page-pagination>
以上就是angular.js分页代码的全部内容,希望对大家的学习有所帮助。
angular.js分页代码的实例的更多相关文章
- Angular.js分页代码
$scope.reloadList=function(){ $scope.findPage( $scope.pagina ...
- 纯js分页代码(简洁实用)
纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...
- angular js 分页
一.编写实体类PageResult public class PageResult implements Serializable { private Long total;//总记录数 privat ...
- js分页代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xh ...
- 非常不错的一个JS分页效果代码
这里分享一个不错的js分页代码. 代码中cpage是页面计数,应为全局变量,可以随处调用它: totalpage是总页数. 与asp分页代码很类似,也是先取得记录总数,然后实现分页,基本的分页思路与原 ...
- Angular.js+Bootstrap实现表格分页
最近一直学习Angular.js,在学习过程中也练习了很多的Demo,这里先贴一下表格+分页. 先上图看看最终结果: 不得不说Angular.js代码风格很受人欢迎,几十行代码清晰简洁的实现了上面的功 ...
- angular.js 教程 -- 实例讲解
angular.js AngularJS [1] 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.Ang ...
- js分页实例
js分页实例 案例1 1.js_pageusers.html <!DOCTYPE html> <html> <head> <title>js_pageu ...
- angular js 实例参数学习
<!DOCTYPE html> <html> <head> <meta name="description" content=" ...
随机推荐
- jquery 无刷新上传的小function
function zll_up(click_id,up_url,text_id,show_id){ this.create = function(){} //当点击指定元素时,创建iframe for ...
- LDAP Browser/Editor v2.8.2
https://www.netiq.com/communities/cool-solutions/wp-content/uploads/sites/2/2009/07/Gawor_ldapbrowse ...
- CAP理论/AP架构/CP架构
原文地址:https://blog.csdn.net/u013058742/article/details/83541905 简书里的文章:Spring Cloud Eureka简介及与Zook ...
- Linux系统下的单调时间函数
欢迎转载,转载请注明出处:http://forever.blog.chinaunix.net 一.编写linux下应用程序的时候,有时候会用到高精度相对时间的概念,比如间隔100ms.那么应该使用哪个 ...
- linux下的多线程,pthread_create函数
pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int pthread_create(pthread_t*restrict ...
- pycharm的集成vim
pycharm的集成vim 1. 基本使用 激活码 BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl ...
- QQ欢乐斗地主心得体会 (三):高倍场攻略
上个月,也可能是上个月的上个月,我的欢乐豆兵积攒到了百万之众,突破了历史记录.最近2个月一直在高倍场混,想写点高倍场的心得体会.本篇的体会,与以前写的2篇斗地主心得体会,有点不同. 特别说明:我主要玩 ...
- 安装绿色版mysql小记(5.7.11)
平时使用oracle,感觉太耗我电脑内存了,实在不想用oracle做平时练习了,那就只装一个客户端,工作用..平时自己试试mysql吧..mysql的安装真麻烦,真不是傻瓜式安装就能用,稍微配置不对就 ...
- JS调用ATL COM中的C++接口的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 首先创建一个ATL COM对象,其过程参考下面文章: C#调用ATLCOM 其实给COM对象添加方法和属性可以不用界面 ...
- Python 库的使用 —— dis
dis:Disassembler of Python byte code into mnemonics. Java.Python.Ruby 1.9 这些语言均使用了栈机器型的 VM.因为是基于栈的实现 ...