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 相关文章推荐
经典的解除许多网站无法复制文字的绝招
Dec 31 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
Apr 15 Javascript
Jquery 切换不同图片示例代码
Dec 05 Javascript
Jquery结合HTML5实现文件上传
Jun 25 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
微信小程序 wx:key详细介绍
Oct 28 Javascript
react-redux中connect的装饰器用法@connect详解
Jan 13 Javascript
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
vue的token刷新处理的方法
Jul 17 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
详解react内联样式使用webpack将px转rem
Sep 13 Javascript
angular共享依赖的解决方案分享
Oct 15 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/10/09 PHP
php5.2.0内存管理改进
2007/01/22 PHP
php去除HTML标签实例
2013/11/06 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
Python中实现三目运算的方法
2015/06/21 Python
Python正则表达式教程之一:基础篇
2017/03/02 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
python集合能干吗
2020/07/19 Python
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
国家助学金获奖感言
2014/01/31 职场文书
先进集体事迹材料
2014/02/17 职场文书
基督教婚礼主持词
2014/03/14 职场文书
文秘求职信范文
2014/04/10 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
检讨书范文300字
2015/01/28 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫