angularjs实现的前端分页控件
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实现的前端分页控件相关推荐
- iOS:分页控件UIPageControl的使用
分页控件:UIPageControl 功能:通常搭配滚动视图一起使用,设置pagingEnabled=YES即可,UIScrollView会被分割成多个独立页面,用户的滚动体验则变成了页面翻转,一 ...
- Winform分页控件之纯分页显示处理
在之前介绍的Winform分页控件中,都以分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情 ...
- 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】
================================ 欢迎转载,但是请注明出处.本文出自博客园 .谢谢合作! ================================ 最新版本:V ...
- AspNetPager分页控件
http://files.cnblogs.com/zhangweiguo3984/AspNetPager433.rar 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以 ...
- AspNetPager免费开源分页控件7.4.1版发布
前几天发布的7.4版出现了postback分页情况下客户端脚本未注册的bug,非常抱歉,7.4.1版已修正这些问题,具体更新说明如下: 修正了Postback分页且显示页索引文本框的情况下,客户端脚本 ...
- 使用amaze ui的分页样式封装一个通用的JS分页控件
作为一名码农,天天百度.偶尔谷歌,所有代码全靠copy,用第三方插件,偶尔也想着造造轮子,毕竟自己的骨肉总归比较亲. 今天有点空闲时间,想起我们公司之前套的页面的分页插件上还有bug,而写那个分页插件 ...
- QuickPager asp.net 分页控件 转
QuickPager asp.net 分页控件.表单控件等自定义控件下载 和介绍 最新下载地址: 自然框架的源代码.Demo.数据库.配置信息管理程序下载(2010.01.25更新) QuickCon ...
- asp.net分页控件使用详解【附实例下载】
本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧 一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将 ...
- Silverlight4.0(9) 之 分页控件轻量级的Session
Silverlight中的DataPager分页控件实际上没什么好说的 PagedCollectionView pcv = new PagedCollectionView(list); pcv.Pag ...
最新文章
- C#textbox只能输入数字和英文句号
- 谷歌浏览器chrome 清除记住密码
- 在SAP Data Intelligence Modeler里创建新的pipeline
- rh9.0虚拟机dmesg启动过程分析(1)
- MySQL学习笔记17:别名
- 关于Block的个人总结
- crawl spider
- LeetCode--032--最长有效括号(java)
- Python基础语法知识点汇集
- 一步步的Abaqus2021版本安装教程+汉化操作
- Java 正则表达式的用法和实例
- 初学linux用哪个发行版本,初学者学习Linux选择哪个发行版本合适?
- 计算机主板别称是什么城,武汉别名江城又称什么城 武汉被誉为什么城之称
- Windows Route 路由表命令详解
- 不破坏背景的情况下在线ps替换文字
- c语言程序打不开如何修复,处理win7中打不开程序修复0xc0000142错误代码的问题
- 【C语言指针题】编写函数实现在任意行、任意列的二维数组中寻找鞍点,行、列数均有主调函数传入。
- DotNetCore动态库使用HttpClientFactory
- 2023软件库iApp程序源码+有后台管理源码/全新UI简约大气
- P1361 小M的作物(最小割)