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 相关文章推荐
JavaScript 面向对象编程(1) 基础
May 18 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
javascript预加载图片、css、js的方法示例介绍
Oct 14 Javascript
搭建Bootstrap离线文档的方法
Dec 02 Javascript
学习vue.js表单控件绑定操作
Dec 05 Javascript
微信小程序 ecshop地址三级联动实现实例代码
Feb 28 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
Apr 13 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
有趣的JavaScript隐式类型转换操作实例分析
May 02 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
jquery获取radio值实例
2014/10/16 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
javascript this详细介绍
2016/09/19 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
js中url对象化管理分析
2017/12/29 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
简单的python后台管理程序
2017/04/13 Python
Python求出0~100以内的所有素数
2018/01/23 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
给导游的表扬信
2014/01/10 职场文书
教导处工作制度
2014/01/18 职场文书
新农村建设典型材料
2014/05/31 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
公司2014年度工作总结
2014/12/10 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
收入证明申请书
2015/06/12 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
上班旷工检讨书
2015/08/15 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL