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 相关文章推荐
巧妙破除网页右键禁用的十大绝招
Aug 12 Javascript
Javascript Throttle &amp; Debounce应用介绍
Mar 19 Javascript
解决json日期格式问题的3种方法
Feb 02 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
用javascript将数据导入Excel示例代码
Sep 10 Javascript
cookie的secure属性详解
Apr 08 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
Feb 17 Javascript
浅析script标签中的defer与async属性
Nov 30 Javascript
任意Json转成无序列表的方法示例
Dec 09 Javascript
react.js 翻页插件实例代码
Jan 19 Javascript
详解一个基于套接字实现长连接的express
Mar 28 Javascript
JavaScript实现模态对话框实例
Jan 13 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
第八节--访问方式
2006/11/16 PHP
PHP 函数学习简单小结
2010/07/08 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
Python实现购物程序思路及代码
2017/07/24 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
学校节能减排方案
2014/06/13 职场文书