AngularJs实现分页功能不带省略号的代码


Posted in Javascript onMay 30, 2016

angularJs 的分页重点体现在对 过滤器 的使用。这个过滤器也并不复杂。

首先上 html 代码:

<!DOCTYPE html>
<html ng-app="demoApp">
<head>
<meta charset="utf-">
<meta name="viewport" content="width=device-width">
<title>demo</title>
<link rel="stylesheet" href="demo.css">
</head>
<body>
<div ng-controller="demoCtrl">
<div>
<ul>
<li ng-repeat="sentences in demoLists[].name | paging:currentPage*listsPerPage | limitTo:listsPerPage">{{sentences}}</li> <!-- ng-repeat 动态生成模拟的数据 -->
</ul>
</div>
<div>
<a class="step prevLink" ng-click="prevPage()">上一页</a>
<a ng-class="{true:'currentStep',false:'step'}[num==currentPage]" ng-repeat="num in pageNum" ng-click="setPage(num)">{{num+}}</a> <!-- ng-repeat 动态生成页码 -->
<a class="step nextLink" ng-click="nextPage()">下一页</a>
</div>
</div>
<script src="angular.min.js"></script> <!-- 引入你的 angularJs 文件 -->
<script src="demo.js"></script>
</body>
</html>

这里面用到了 ng-class,当前页 currentPage 等于页码 num 时,显示 currentStep 的样式,不等于时显示 step 的样式。

重点代码在 13 行,ng-repeat 模拟数据的时候加了过滤器,过滤器名字叫 paging 和一个 angular 自带的过滤 limitTo。

然后是 css 代码,没有什么可说的,主要是调样式。其中记得加上 ng-class 里的两个样式。

ul>li{
list-style:none;
width:px;
height:px;
border:px solid #CAF;
margin-bottom:px;
padding-left:px;
}
.nextLink,.prevLink{
font-size: px;
line-height: px;
height: px;
border: solid px #aaa;
color: #;
padding: px;
margin: px;
list-style: none;
background: #fff;
float: left;
cursor: pointer;
}
a.prevLink:hover,a.nextLink:hover {
background: #aaa !important;
color: #fff !important;
cursor: pointer;
}
.step {
display: block;
line-height: px;
height: px;
border: solid px #aaa;
color: #;
background: #fff;
padding: px;
font-size: px;
float: left;
margin: px;
list-style: none;
cursor: pointer;
}
.currentStep{
border-color: #fff;
padding: px;
color: #f;
font-weight: bold;
float: left;
display: block;
line-height: px;
height: px;
padding: px;
font-size: px;
float: left;
margin: px;
list-style: none;
cursor: pointer;
}

最后就是 js 了

var demoApp = angular.module('demoApp',[]);
demoApp.filter('paging',function(){ //paging 过滤器
return function(lists,start){ //两个参数 lists 是在 html 里你ng-repeat的原始数据:
// start 也就是 paging 后面传的参数,即 currentPage*listsPerPage
return lists.slice(start); //将原始数据按照 start 分割
};
});
demoApp.controller('demoCtrl',['$scope',function($scope){ //页面控制器
$scope.demoLists = [ //模拟数据
{name:['hello world','hello world again',
'why i say hello wrold',
'i dont know the reason',
'maybe because i am a developer.',
'thank you for reading this',
'why i say thank you',
'cause this stuff has nothing to do with your angularJs studying',
'these are just demo sentences.',
'Do not have any special meanings.',
'and you still take time to read this row by row',
'what could i say?',
'okay.maybe you wanna lenrn how json works.']
}
];
$scope.dataNum = $scope.demoLists[].name.length; //获得数据总个数
$scope.pages = Math.ceil($scope.dataNum/); //按照每页显示个数据,得到总页数
$scope.pageNum = []; //生成页码,在 html里 ng-repeat 出来
for(var i=;i<$scope.pages;i++){
$scope.pageNum.push(i);
}
$scope.currentPage = ; //设置当前页是 
$scope.listsPerPage = ; //设置每页显示 个
$scope.setPage = function(num){ // 当点击页码数字时执行的函数
$scope.currentPage = num; //将当前页 设置为 页码数
}
$scope.prevPage = function(){ //点击上一页执行的函数
if($scope.currentPage > ){
$scope.currentPage--;
}
}
$scope.nextPage = function(){ //点击下一页执行的函数
if ($scope.currentPage < $scope.pages-){
$scope.currentPage++;
}
}
}]);

这中间要说一下,你生成的 pageNum 是从 0 开始的,但真正的 页码 都是从一开始,所以这也就是 html 里 18 行是 num +1 的缘故。

以上内容是小编给大家介绍的AngularJs实现分页功能不带省略号的代码,希望能够帮助到大家,如果大家想了解更多有关angularjs的知识敬请关注三水点靠木网站!

Javascript 相关文章推荐
flash 得到自身url参数的代码
Nov 15 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
Aug 23 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
使用Javascript实现选择下拉菜单互移并排序
Feb 23 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
JS中如何实现点击a标签返回页面顶部的问题
Jan 19 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
VUE实现可随意拖动的弹窗组件
Sep 25 Javascript
webpack 静态资源集中输出的方法示例
Nov 09 Javascript
ionic3双击返回退出应用的方法
Sep 17 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
Bootstrap开关(switch)控件学习笔记分享
May 30 #Javascript
You might like
消息持续发送的完整例子
2006/10/09 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
致全体运动员广播稿
2014/02/01 职场文书
临床专业自荐信
2014/06/22 职场文书
2014年实习生工作总结
2014/11/27 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
教师学习心得体会范文
2016/01/21 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android