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 相关文章推荐
jQuery链式操作如何实现以及为什么要用链式操作
Jan 17 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
js对象基础实例分析
Jan 13 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
js正则表达式验证表单【完整版】
Mar 06 Javascript
angular中ui calendar的一些使用心得(推荐)
Nov 03 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
Dec 05 Javascript
深入理解JavaScript 中的执行上下文和执行栈
Oct 23 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
Sep 18 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动态变静态原理
2006/11/25 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
小程序实现上传视频功能
2020/08/18 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
python基于socket实现网络广播的方法
2015/04/29 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python处理xml文件的方法小结
2017/05/02 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
药品营销策划方案
2014/06/15 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
比较几种Redis集群方案
2021/06/21 Redis
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js