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获取url参数的使用扩展实例
Dec 29 Javascript
jquery中.add()的使用分析
Apr 26 Javascript
jQuery拖动图片删除示例
May 10 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
跟我学习javascript的this关键字
May 28 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
Aug 03 Javascript
React中如何引入Angular组件详解
Aug 09 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
Vue学习之组件用法实例详解
Jan 06 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
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上传图片存入数据库示例分享
2014/03/11 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
jquery $.ajax相关用法分享
2012/03/16 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
专升本个人自我评价
2013/12/22 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
公路绿化方案
2014/05/12 职场文书
商务经理岗位职责
2014/08/03 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
感恩教育观后感
2015/06/17 职场文书