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 相关文章推荐
JavaScript中实现map功能代码分享
Jun 11 Javascript
关于JS中prototype的理解
Sep 07 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
weUI应用之JS常用信息提示弹层的封装
Nov 21 Javascript
SVG动画vivus.js库使用小结(实例代码)
Sep 14 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 Javascript
Angular浏览器插件Batarang介绍及使用
Feb 07 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
vue使用nprogress加载路由进度条的方法
Jun 04 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
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
php session 错误
2009/05/21 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
javascript实现单击和双击并存的方法
2014/12/13 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
python cumsum函数的具体使用
2019/07/29 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
毕业自我鉴定
2013/11/05 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
毕业评语大全
2014/05/04 职场文书
师德师风演讲稿
2014/05/05 职场文书
奥运会口号
2014/06/13 职场文书
社区工作者个人总结
2015/02/28 职场文书
家长反馈意见及建议
2015/06/03 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
任命书格式模板
2015/09/22 职场文书