Angular+Bootstrap实现分页(带省略号)

前言

前几天用Angularjs写一个后台管理界面时,需要写分页,自己懒得写于是想在网上搜索一个带省略号的插件,竟然没找到,那没办法就自己写吧

效果图

话不多说,直接上代码

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <meta charset="utf-8">
 5   <title></title>
 6   <link rel="stylesheet" href="bootstrap.min.css">
 7   <script type="text/javascript" src="angular.js"></script>
 8 </head>
 9 <body ng-app="myApp" ng-controller="myController">
10   <nav aria-label="Page navigation" class="clearfix">
11     <ul class="pagination pagination-sm pagination1 fr" style="margin: 0">
12       <li ng-class="{disabled:page==1}">
13         <a href="javascript:void(0)" aria-label="Previous" ng-click="sub(page-1<1?1:page-1)" ng-disabled="page==1">
14           <span aria-hidden="true">&laquo;</span>
15         </a>
16       </li>
17       <li ng-if="page >= pageNum && lastPage !== pageNum" ng-click="sub(1)" ng-class="{active:item==1}">
18         <a href="javascript:void(0)">1</a>
19       </li>
20       <li ng-if="page >= pageNum && lastPage !== pageNum">
21         <a href="javascript:void(0)">...</a>
22       </li>
23       <li ng-click="sub(item)" ng-class="{active:item==page}" ng-repeat="item in pages">
24         <a href="javascript:void(0)">{{item}}</a>
25       </li>
26       <li ng-if="lastPage > pageNum && firstPage <= lastPage - pageNum">
27         <a href="javascript:void(0)">...</a>
28       </li>
29       <li ng-if="lastPage > pageNum && firstPage <= lastPage - pageNum" ng-click="sub(lastPage)" ng-class="{active:item==page}">
30         <a href="javascript:void(0)">{{lastPage}}</a>
31       </li>
32       <li ng-class="{disabled:page==lastPage}">
33         <a href="javascript:void(0)" aria-label="Next" ng-click="sub(page+1>lastPage?page:page+1)">
34           <span aria-hidden="true">&raquo;</span>
35         </a>
36       </li>
37     </ul>
38   </nav>
39 </body>
40 <script type="text/javascript">
41   var app = angular.module(‘myApp‘, []);
42   function setPage(length, amount, num, first) {//创建保存页码数组的函数
43     //length数据总条数
44     //amount每页数据条数
45     //num保留的页码数
46     //first第一页的页码
47     var pages = []; //创建分页数组
48     var page = Math.ceil(length / amount);
49     if (page <= num) {
50       for (var i = 1; i <= page; i++) {
51         pages.push(i);
52       }
53     }
54     if (page > num) {
55       for (var i = first; i < first + num; i++) {
56         pages.push(i);
57       }
58     }
59     return pages;
60   }
61   app.controller(‘myController‘, function($scope) {
62     $scope.firstPage = 1;
63     $scope.pageNum = 5;
64     $scope.page = 1;
65     var amount = 100;//数据总条数
66     var each = 6;//每页显示的条数
67     $scope.sub = function(page) {
68         $scope.lastPage = Math.ceil(amount / each);
69         if (page >= $scope.pageNum) {
70           $scope.firstPage = page - Math.floor($scope.pageNum / 2);
71         } else {
72           $scope.firstPage = 1;
73         }
74         if ($scope.firstPage > $scope.lastPage - $scope.pageNum) {
75           $scope.firstPage = $scope.lastPage - $scope.pageNum + 1;
76         }
77         $scope.pages = setPage(amount, each, $scope.pageNum, $scope.firstPage);
78         $scope.page = page;
79     }
80     $scope.sub(1);
81   });
82
83 </script>
84 </html>
时间: 2025-01-05 02:06:33

Angular+Bootstrap实现分页(带省略号)的相关文章

用angularJs实现分页功能,不带省略号。

angularJs 的分页重点体现在对 过滤器 的使用.这个过滤器也并不复杂. 首先上 html 代码: 1 <!DOCTYPE html> 2 <html ng-app="demoApp"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width">

防淘宝带省略号的AJAX分页

<?php /**  * 防淘宝带省略号的AJAX分页  * @param date   * @author hany  */ class AjaxPage { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit;  //分页参数 private $uri;   private $pageNum; //总页数 private $config=array('header'=>"个记录", 

Thinkphp5 分页带参数

Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带入到分页中,本文详细介绍Thinkphp5 分页带参数 一.基本使用方法: $list = Db::name('user')->where('status',1)->paginate(10); 二.查看thinkphp5 paginate()函数 paginate()函数可以带三个参数: $listRows  每页数量 数组表示配置参数 $simple   是否简洁模式或者总记录数 如果为true,那么分页的就是只有上一页和下一页

第二百三十九节,Bootstrap路径分页标签和徽章组件

Bootstrap路径分页标签和徽章组件 学习要点: 1.路径组件 2.分页组件 3.标签组件 4.徽章组件 本节课我们主要学习一下 Bootstrap 的四个组件功能:路径组件.分页组件.标签组件 和徽章组件. 一.路径组件 路径组件也叫做面包屑导航. 面包屑导航 breadcrumb样式class类,写在<ul>或<ol>里,设置面包屑导航(Bootstrap) <ol class="breadcrumb"> <li><a hr

thinkphp 分页中间省略号实现【亲测好使】

thinkphp 分页中间省略号实现 <?php class Pages{     public $firstRow; // 起始行数     public $listRows; // 列表每页显示行数     public $parameter; // 分页跳转时要带的参数     public $totalRows; // 总行数     public $totalPages; // 分页总页面数     public $rollPage   = 5;// 分页栏每页显示的页数     pu

springMVC+angular+bootstrap+mysql的简易购物网站搭建

springMVC+angular+bootstrap+mysql的简易购物网站搭建 介绍 前端的css框架用了bootstrap, 以及bootstrap的JS组件, 以及很好用的angular(angular大法好), 项目一共包含了7个静态界面, 静态界面的数据展示都使用了angularJS , 后端是基于java的spring, 容器为tomcat, 项目代码分享到百度云盘 , 这个项目的优势是, 所有的显示都是在前端完成, 数据交互也是通过ajax完成, 没有频繁的页面跳转:先上两张商

[AngularJS] 仿照Angular Bootstrap TimePicker创建一个分钟数-秒数的输入控件(minuteSecondPicker)

在一个项目中需要一个用来输入分钟数和秒数的控件,然而调查了一些开源项目后并未发现合适的控件.在Angular Bootstrap UI中有一个类似的控件TimePicker,但是它并没有深入到分钟和秒的精度. 因此,决定参考它的源码然后自己进行实现. 最终的效果如下: 首先是该directive的定义: app.directive('minuteSecondPicker', function() { return { restrict: 'EA', require: ['minuteSecond

嘿!@野兽,你的ng api 掉了 - - angular.bootstrap

@野兽的 ng api 学习 -- angular.bootstrap angular.bootstrap 使用这个功能来手动启动angular应用.基于ngScenario的端对端测试不能使用bootstrap手动启动,需要使用ngApp. Angular会检测应用在浏览器是否已启动并且只允许第一次的启动,随后的每次启动都将会导致浏览器控制台报错. 这可以防止应用出现多个Angular实例尝试在Dom上运行的一些奇异结果. 格式:angular.bootstrap(element,[nodul

angular.extend、angular.$watch、angular.bootstrap

1.angular.extend:依次将第二个参数及后续的参数的第一层属性(不管是简单属性还是对象)拷贝给第一个参数的第一层属性,即如果是对象,则是引用的是同一个对象,并返回第一个参数对象. 直接上代码来的简单明了: <script type="text/javascript" src="js/angular.min.js" ></script> <script type="text/javascript">