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代码
Dec 15 Javascript
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
javascript判断office版本示例
Apr 11 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
jQuery组件easyui基本布局实现代码
Aug 25 Javascript
jQuery图片加载显示loading效果
Nov 04 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
Jan 23 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
Feb 10 Javascript
vue通信方式EventBus的实现代码详解
Jun 10 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
Vue 实现分页与输入框关键字筛选功能
Jan 02 Javascript
Openlayers实现地图全屏显示
Sep 28 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php下使用无限生命期Session的方法
2007/03/16 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
php利用header函数下载各种文件
2016/08/24 PHP
javascript 简练的几个函数
2009/08/29 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python探索之Metaclass初步了解
2017/10/28 Python
对python中的logger模块全面讲解
2018/04/28 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
钳工实习自我鉴定
2013/09/19 职场文书
中职生自荐信
2013/10/13 职场文书
外国语学院毕业生自荐信
2013/10/28 职场文书
营销与策划应届生求职信
2013/11/04 职场文书
中国梦读书活动总结
2014/07/10 职场文书
个人买房协议书范本
2014/10/06 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
Django如何与Ajax交互
2021/04/29 Python
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
Win2008系统搭建DHCP服务器
2022/06/25 Servers
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python