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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
Sep 19 Javascript
javascript实现按回车键切换焦点
Feb 09 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
Mar 24 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
javascript实现简单计算器效果【推荐】
Apr 19 Javascript
浅析bootstrap原理及优缺点
Mar 19 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
JS中call和apply函数用法实例分析
Jun 20 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
May 19 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中的integer类型使用分析
2010/07/27 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
python获取标准北京时间的方法
2015/03/24 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python生成随机数组的方法小结
2017/04/15 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
管理站站长岗位职责
2013/11/27 职场文书
营业员实习自我鉴定
2013/12/07 职场文书
校园达人秀策划书
2014/01/12 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
四议两公开实施方案
2014/03/28 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
维稳工作情况汇报
2014/10/27 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers