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 相关文章推荐
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
jQuery之尺寸调整组件的深入解析
Jun 19 Javascript
向左滚动文字 js代码效果
Aug 17 Javascript
javascript和jquery实现用户登录验证
May 04 Javascript
原生js编写基于面向对象的分页组件
Dec 05 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 Javascript
jquery将标签元素的高设为屏幕的百分比
Apr 19 jQuery
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
详解在React里使用&quot;Vuex&quot;
Apr 02 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 Javascript
纯js+css实现在线时钟
Aug 18 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
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
jquery中ajax学习笔记4
2011/10/16 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
原生js实现放大镜
2017/02/20 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
详解在Python和IPython中使用Docker
2015/04/28 Python
python类的继承实例详解
2017/03/30 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
对pandas处理json数据的方法详解
2019/02/08 Python
举例讲解Python常用模块
2019/03/08 Python
python输入多行字符串的方法总结
2019/07/02 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
简短的公司员工自我评价分享
2013/11/13 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python