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 相关文章推荐
可以支持多中格式的JS键盘
May 02 Javascript
SWFObject Flash js调用类
Jul 08 Javascript
javascript 使用 NodeList需要注意的问题
Mar 04 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 Javascript
手机图片预览插件photoswipe.js使用总结
Aug 25 Javascript
移动端基础事件总结与应用
Jan 12 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
vue+element加入签名效果(移动端可用)
Jun 17 Javascript
小程序实现锚点滑动效果
Sep 23 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
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
Vue基础学习之项目整合及优化
2019/06/02 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python字符串常用方法
2018/06/14 Python
python3.4爬虫demo
2019/01/22 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
python如何调用php文件中的函数详解
2020/12/29 Python
J2EE面试题大全
2016/08/06 面试题
Python使用openpyxl复制整张sheet
2021/03/24 Python
毕业生自荐书
2013/12/18 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
环卫个人总结
2015/03/03 职场文书
第一军规观后感
2015/06/12 职场文书
走进科学观后感
2015/06/18 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书