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 相关文章推荐
基于jQuery的输入框在光标位置插入内容, 并选中
Oct 29 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
详解React-Todos入门例子
Nov 08 Javascript
Vue.Js中的$watch()方法总结
Mar 23 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
Jul 28 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 Javascript
详解微信小程序用定时器实现倒计时效果
Apr 30 Javascript
小程序点击图片实现png转jpg
Oct 22 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Python读取stdin方法实例
2019/05/24 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
用python制作个音乐下载器
2021/01/30 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
世界上最好的帽子:Tilley
2016/11/27 全球购物
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
七年级音乐教学反思
2014/01/26 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
学校工会工作总结2015
2015/05/19 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
爱国主义影片观后感
2015/06/18 职场文书
办公室卫生管理制度
2015/08/04 职场文书
高中团支书竞选稿
2015/11/21 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js