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 Discuz代码中的msn聊天小功能
May 25 Javascript
javascript实现跳转菜单的具体方法
Jul 05 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
js实现PC端和移动端刮卡效果
Mar 27 Javascript
Angular指令之restict匹配模式的详解
Jul 27 Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 Javascript
Vuex入门到上手教程
Jun 20 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 Javascript
Vue 动态组件components和v-once指令的实现
Aug 30 Javascript
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
深入理解Vue的数据响应式
May 15 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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
深入解析php之sphinx
2013/05/15 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
python爬虫面试宝典(常见问题)
2018/03/02 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python调用staf自动化框架的方法
2018/12/26 Python
简单了解python中对象的取反运算符
2019/07/01 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python实现GIF图倒放
2020/07/16 Python
python获取整个网页源码的方法
2020/08/03 Python
PHP面试题大全
2015/10/16 面试题
外贸员简历中的自我评价
2014/03/04 职场文书
学校安全生产承诺书
2014/05/23 职场文书
考研英语辞职信
2015/05/13 职场文书
婚宴来宾致辞
2015/07/28 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书