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 相关文章推荐
javascript,jquery闭包概念分析
Jun 19 Javascript
Function.prototype.bind用法示例
Sep 16 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 Javascript
JavaScript中的console.assert()函数介绍
Dec 29 Javascript
jQuery中:radio选择器用法实例
Jan 03 Javascript
javascript限制文本框输入值类型的方法
May 07 Javascript
BootStrap智能表单实战系列(七)验证的支持
Jun 13 Javascript
JS实现旋转木马式图片轮播效果
Jan 18 Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
详解RequireJs官方使用教程
Oct 31 Javascript
Vue详细的入门笔记
May 10 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
PHP 加密解密内部算法
2010/04/22 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python实现包含min函数的栈
2016/04/29 Python
django 创建过滤器的实例详解
2017/08/14 Python
python安装scipy的方法步骤
2019/06/26 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
俄语专业职业生涯规划
2014/02/26 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
教师党员整改措施
2014/10/24 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
合理化建议书
2015/02/04 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
一条慢SQL语句引发的改造之路
2022/03/16 MySQL