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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
浅析document.ready和window.onload的区别讲解
Dec 18 Javascript
JavaScript比较两个对象是否相等的方法
Feb 06 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
js多功能分页组件layPage使用方法详解
May 19 Javascript
JavaScript中定义对象原型的两种使用方法
Dec 15 Javascript
详解node child_process模块学习笔记
Jan 24 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
JS实现判断有效的数独算法示例
Feb 25 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 Javascript
vue 调用 RESTful风格接口操作
Aug 11 Javascript
使用jquery实现轮播图效果
Jan 02 jQuery
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
sphinx增量索引的一个问题
2011/06/14 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
Python常用知识点汇总
2016/05/08 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
mac使用python识别图形验证码功能
2020/01/10 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
浅谈django channels 路由误导
2020/05/28 Python
简单了解如何封装自己的Python包
2020/07/08 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
个人简历的自荐信
2013/10/23 职场文书
法学个人求职信范文
2014/01/27 职场文书
洗车工岗位职责
2014/03/15 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
经理岗位职责范本
2015/04/15 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书