angularjs实现的前端分页控件

前言:之前写个一个jQuery的分页显示插件,http://blog.csdn.net/peakchen_90/article/details/52187175,存在许多的bug,现在由于业务需要,学习的一点angularjs,重新用angularjs实现了这个分页插件

实现效果图:

(效果图是加上了bootstrap的css文件)

用法:

angular-pagination.js代码:

/*** angularjs分页控件* Created by CHEN on 2016/11/1.*/angular.module('myModule', []).directive('myPagination', function () {return {restrict: 'EA',replace: true,scope: {option: '=pageOption'},template: '<ul class="pagination">' +'<li ng-click="pageClick(p)" ng-repeat="p in page" class="{{option.curr==p?\'active\':\'\'}}">' +'<a href="javascript:;">{{p}}</a>' +'</li>' +'</ul>',link: function ($scope) {//容错处理if (!$scope.option.curr || isNaN($scope.option.curr) || $scope.option.curr < 1) $scope.option.curr = 1;if (!$scope.option.all || isNaN($scope.option.all) || $scope.option.all < 1) $scope.option.all = 1;if ($scope.option.curr > $scope.option.all) $scope.option.curr = $scope.option.all;if (!$scope.option.count || isNaN($scope.option.count) || $scope.option.count < 1) $scope.option.count = 10;//得到显示页数的数组$scope.page = getRange($scope.option.curr, $scope.option.all, $scope.option.count);//绑定点击事件$scope.pageClick = function (page) {if (page == '«') {page = parseInt($scope.option.curr) - 1;} else if (page == '»') {page = parseInt($scope.option.curr) + 1;}if (page < 1) page = 1;else if (page > $scope.option.all) page = $scope.option.all;//点击相同的页数 不执行点击事件if (page == $scope.option.curr) return;if ($scope.option.click && typeof $scope.option.click === 'function') {$scope.option.click(page);$scope.option.curr = page;$scope.page = getRange($scope.option.curr, $scope.option.all, $scope.option.count);}};//返回页数范围(用来遍历)function getRange(curr, all, count) {//计算显示的页数curr = parseInt(curr);all = parseInt(all);count = parseInt(count);var from = curr - parseInt(count / 2);var to = curr + parseInt(count / 2) + (count % 2) - 1;//显示的页数容处理if (from <= 0) {from = 1;to = from + count - 1;if (to > all) {to = all;}}if (to > all) {to = all;from = to - count + 1;if (from <= 0) {from = 1;}}var range = [];for (var i = from; i <= to; i++) {range.push(i);}range.push('»');range.unshift('«');return range;}}}
});

index.html代码:

<!doctype html>
<html ng-app="app">
<head><meta charset="UTF-8"><title>Angularjs分页控件</title><script src="angular.min.js"></script>  <!-- 引入angularjs文件,而且是1.x版本的 --><script src="angular-pagination.js"></script> <!-- 引入angularjs分页控件 --><script src="app.js"></script> <!-- 引入app.js -->
</head>
<body><!-- 控制器 -->
<div ng-controller="myCtrl"><!-- 分页控件指令 ,可以是元素 或者 属性 --><my-pagination page-option="option"></my-pagination></div></body>
</html>

app.js代码:


//引入 'myModele' 模块
var app = angular.module('app', ['myModule']);app.contriller('myCtrl', function($scope){//设置分页的参数$scope.option = {curr: 1,  //当前页数all: 20,  //总页数count: 10,  //最多显示的页数,默认为10//点击页数的回调函数,参数page为点击的页数click: function (page) {console.log(page);//这里可以写跳转到某个页面等...}}
});

angularjs实现的前端分页控件相关推荐

  1. iOS:分页控件UIPageControl的使用

    分页控件:UIPageControl   功能:通常搭配滚动视图一起使用,设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转,一 ...

  2. Winform分页控件之纯分页显示处理

    在之前介绍的Winform分页控件中,都以分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情 ...

  3. 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】

    ================================ 欢迎转载,但是请注明出处.本文出自博客园 .谢谢合作! ================================ 最新版本:V ...

  4. AspNetPager分页控件

    http://files.cnblogs.com/zhangweiguo3984/AspNetPager433.rar 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以 ...

  5. AspNetPager免费开源分页控件7.4.1版发布

    前几天发布的7.4版出现了postback分页情况下客户端脚本未注册的bug,非常抱歉,7.4.1版已修正这些问题,具体更新说明如下: 修正了Postback分页且显示页索引文本框的情况下,客户端脚本 ...

  6. 使用amaze ui的分页样式封装一个通用的JS分页控件

    作为一名码农,天天百度.偶尔谷歌,所有代码全靠copy,用第三方插件,偶尔也想着造造轮子,毕竟自己的骨肉总归比较亲. 今天有点空闲时间,想起我们公司之前套的页面的分页插件上还有bug,而写那个分页插件 ...

  7. QuickPager asp.net 分页控件 转

    QuickPager asp.net 分页控件.表单控件等自定义控件下载 和介绍 最新下载地址: 自然框架的源代码.Demo.数据库.配置信息管理程序下载(2010.01.25更新) QuickCon ...

  8. asp.net分页控件使用详解【附实例下载】

    本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧 一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将 ...

  9. Silverlight4.0(9) 之 分页控件轻量级的Session

    Silverlight中的DataPager分页控件实际上没什么好说的 PagedCollectionView pcv = new PagedCollectionView(list); pcv.Pag ...

最新文章

  1. C#textbox只能输入数字和英文句号
  2. 谷歌浏览器chrome 清除记住密码
  3. 在SAP Data Intelligence Modeler里创建新的pipeline
  4. rh9.0虚拟机dmesg启动过程分析(1)
  5. MySQL学习笔记17:别名
  6. 关于Block的个人总结
  7. crawl spider
  8. LeetCode--032--最长有效括号(java)
  9. Python基础语法知识点汇集
  10. 一步步的Abaqus2021版本安装教程+汉化操作
  11. Java 正则表达式的用法和实例
  12. 初学linux用哪个发行版本,初学者学习Linux选择哪个发行版本合适?
  13. 计算机主板别称是什么城,武汉别名江城又称什么城 武汉被誉为什么城之称
  14. Windows Route 路由表命令详解
  15. 不破坏背景的情况下在线ps替换文字
  16. c语言程序打不开如何修复,处理win7中打不开程序修复0xc0000142错误代码的问题
  17. 【C语言指针题】编写函数实现在任意行、任意列的二维数组中寻找鞍点,行、列数均有主调函数传入。
  18. DotNetCore动态库使用HttpClientFactory
  19. 2023软件库iApp程序源码+有后台管理源码/全新UI简约大气
  20. P1361 小M的作物(最小割)

热门文章

  1. 亚马逊云科技与黑莓扩大合作,将BlackBerry QNX基础软件迁移上云
  2. 使用变量存储以下MP3信息,并打印输出
  3. 论坛推广需要注意哪些
  4. “21天好习惯”第一期- 4 简单的壁纸爬虫
  5. fpga挂一片ddr2_FPGA控制DDR2 Verilog HDL程序代码
  6. java spring mvc中类转换器
  7. SATA控制器学习资料整理
  8. 小程序公测后,你可以关注这些
  9. 北京欢迎你 MV下载
  10. 2022 年 1 月的头号恶意软件: Lokibot 重返榜单,Emotet 重回榜首