AngularJs分页插件使用详解


Posted in Javascript onJune 30, 2018

angularUI bootstrap提供的分页插件满足了大部分应用的需求,具体内容如下

在项目需求中,新增了两个需求:

1.自由设定每页显示的条目;

2.可以手动输入页面,跳转到指定的页数。

html代码

<div class="pagination-define p20 mt20" ng-hide="totalItems==0">
 <select ng-model="perPageSize" ng-change="pageChanged({currentPage:currentPage,perPageSize:perPageSize})" >
  <option value=10 ng-selected="perPageSize==10">10</option>
  <option value=20>20</option>
  <option value=30>30</option>
  <option value=50>50</option>
  <option value=100>100</option>
 </select>
 <uib-pagination items-per-page="numPerPage" total-items="totalItems" ng-model="currentPage" ng-change="pageChanged({currentPage:currentPage,perPageSize:perPageSize})" max-size="5" class="pagination-sm" boundary-link-numbers="true" boundary-links="true" rotate="false" previous-text="‹" next-text="›" first-text="«" last-text="»"></uib-pagination>
 <input type="text" ng-model="inputCurPage" min=1 cus-max-number ="{{maxPages}}" current-page="{{currentPage}}">
 <button class="btn btn-info btn-30h" ng-click="pageChanged({currentPage:inputCurPage,perPageSize:perPageSize})" ng-disabled="inputCurPage==''||submitting">Go</button>
</div>

css代码

.pagination-define{
 text-align: center
}
.pagination-define input, .pagination-define select {
 padding-left: 3px;
 height: 30px;
 vertical-align: top;
 border: 1px solid #ccc;
 border-radius: 4px;
 width: 50px;
}
.pagination {
 margin: 0;
}
.pagination-define .btn-30h {
 vertical-align: top;
}
.btn-30h {
 padding-top: 4px;
 padding-bottom: 4px;
}

Javascript代码

app.directive('cusMaxNumber', ['$timeout', function ($timeout) {
  return {
   restrict: 'EA',
   require: 'ngModel',
   scope: {
    maxNumber: '@cusMaxNumber',
    currentPage: '@currentPage'
   },
   link: function (scope, element, attr, ctrl) {
    ctrl.$parsers.push(function (viewValue) {
     var maxNumber = parseInt(scope.maxNumber, 10);
     var curNumber = scope.currentPage; //当前页数
     var transformedInput = viewValue.replace(/[^0-9]/g, '');
     if (transformedInput !== viewValue||parseInt(transformedInput,10)<1||parseInt(transformedInput,10)>maxNumber) {
      ctrl.$setViewValue(curNumber);
      ctrl.$render();
      return curNumber;
     }
     return viewValue;
    });
   }
  };
 }])
.directive('cusPagination',[function(){
  return {
   restrict: "E",
   templateUrl: 'views/template/pagination.html',
   scope: {
    numPerPage: "=numPerPage",
    totalItems: "=totalItems",
    currentPage: "=cusCurrentPage",
    perPageSize:"=perPageSize",
    inputCurPage:"=inputCurPage",
    maxPages:"=maxPages",
    pageChanged: "&pageChanged"
   },
   replace: false
  };
 }]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js图片处理示例代码
May 12 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
AngularJS入门教程之Helloworld示例
Dec 25 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
Feb 08 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
使用vue制作FullPage页面滚动效果
Aug 21 Javascript
动手写一个angular版本的Message组件的方法
Dec 16 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
Aug 11 Javascript
ionic grid(栅格)九宫格制作详解
Jun 30 #Javascript
vue检测对象和数组的变化分析
Jun 30 #Javascript
浅析vue.js数组的变异方法
Jun 30 #Javascript
详解vue添加删除元素的方法
Jun 30 #Javascript
vue.js删除列表中的一行
Jun 30 #Javascript
vue v-model动态生成详解
Jun 30 #Javascript
vue-router+nginx 非根路径配置方法
Jun 30 #Javascript
You might like
提问的智慧(2)
2006/10/09 PHP
轻松修复Discuz!数据库
2008/05/03 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
js控制随机数生成概率代码实例
2019/03/21 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
python获取本地计算机名字的方法
2015/04/29 Python
python 异常处理总结
2016/10/18 Python
Python实现的读写json文件功能示例
2018/06/05 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
python如何统计代码运行的时长
2019/07/24 Python
解析Python3中的Import
2019/10/13 Python
python列表推导式入门学习解析
2019/12/02 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
python温度转换华氏温度实现代码
2020/12/06 Python
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
高中生旷课检讨书
2014/10/08 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
银行自荐信怎么写
2015/03/05 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript