angularjs+bootstrap实现自定义分页的实例代码


Posted in Javascript onJune 19, 2017

目前在做一个java web页面,没有使用到框架的分页,所以需要自己实现分页,就想到了用angularjs来实现分页,数据通过ajax从后台获取。

插件

百度了一下,看到一个比较漂亮的插件,就直接用该插件,并修改了部分细节,使得适合我的项目,该插件地址是:(https://github.com/miaoyaoyao/AngularJs-UI)

效果图

angularjs+bootstrap实现自定义分页的实例代码

使用方法

1、在网页的头部引入angularjs、bootstarp以及该插件,该分页插件主要是ng-pagination.css以及ng-pagination.js

<link rel="stylesheet" href="/nutz-test/static/bootstrap/bootstrap.min.css" rel="external nofollow" >
<link rel="stylesheet" href="/nutz-test/static/angular/ng-pagination.css" rel="external nofollow" >
<script src="/nutz-test/static/jquery/jquery.min.js"></script>
<script src="/nutz-test/static/angular/angular.min.js"></script>
<script src="/nutz-test/static/angular/ng-pagination.js"></script>
<script src="/nutz-test/static/bootstrap/bootstrap.min.js"></script>

2、表格代码以及分页代码

<div id="app" ng-app="myApp" ng-controller="myCtrl">
 <div style="overflow: auto; width: 100%;">
   <table class="table table-hover table-striped table-bordered" id="j-table">
     <thead>
       <tr>
         <th>姓名</th>
         <th>年龄</th>
         <th>电话</th>
         <th>职位</th>
       </tr>    
     </thead>
     <tbody>
       <tr ng-repeat="item in list">
         <th title="{{item.name}}">{{item.name}}</th>
         <th title="{{item.age}}">{{item.age}}</th>
         <th title="{{item.tel}}">{{item.tel}}</th>
         <th title="{{item.position}}">{{item.position}}</th>
       </tr>
     </tbody>
   </table>
 </div>
<!-- 这里引用插件的分页-->
 <div class="pager">
  <pager page-count="pageCount" current-page="currentPage" on-page-change="onPageChange()" first-text="首页" next-text="下一页" prev-text="上一页" last-text="尾页" show-goto="true" goto-text="跳转到"></pager>
 </div>
</div>

3、javascript代码部分

分页的重点是从后台获取数据,只需把pageSize(每页显示数目),以及pageIndex(当前页数)通过post请求传到后台即可。后台返回实际的数据以及pageCount(页数)给前台即可。其中,onPageChange()方法是点击页码后去通过ajax从后台获取数据,myinit()方法是第一次请求该页面时进行初始化。$scope.currentPage就是页数,例如当你点击下一页的时候,它就会加一,然后就可以通过post请求去后台取下一页的数据了。

<script type="text/javascript">
var app = angular.module('myApp', ['ng-pagination']);
app.controller('myCtrl', ['$scope', function ($scope) {
  $scope.onPageChange = function() {
     // ajax request to load data
     console.log($scope.currentPage);
     //这里是post请求去后台取数据
     $.ajax({
       type:"post",
       url:'/nutz-test/show/pagination',
       data:{
         "pageSize":5,
         "pageIndex":$scope.currentPage
       },
       dataType:"json",
       success:function(data){
         $scope.$apply(function () {
           $scope.list = data.list;
           $scope.pageCount = data.pageCount;
          });

       }
     })
    };
    //初始化,设置为第一页,每页显示5条
    $scope.myinit = function(){
      $.ajax({
         type:"post",
         url:'/nutz-test/show/pagination',
         data:{
           "pageSize":5,
           "pageIndex":1
         },
         dataType:"json",
         success:function(data){
           $scope.$apply(function () {
             $scope.list = data.list;
             $scope.pageCount = data.pageCount;
            });

         }
       })
    };
    $scope.myinit();
}]);
</script>

注意事项

1、该插件在只有一页的情况会出现分页插件加载不出来的情况,因此需要修改ng-pagination.js的代码。

打开ng-pagination.js,定位到最后的template,修改pageCount>=1,如下图所示。

angularjs+bootstrap实现自定义分页的实例代码

2、在ie浏览器和360浏览器不支持跳转功能,原因是ie和360没有number.isNaN()方法,因此需要修改分页插件的该方法,改为isNaN()。

定位到ng-pagination.js的Number.isNaN()方法,把该方法修改为下图所示。

angularjs+bootstrap实现自定义分页的实例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从Ajax到JQuery Ajax学习
Feb 14 Javascript
Javascript图像处理—亮度对比度应用案例
Jan 03 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
js控制滚动条缓慢滚动到顶部实现代码
Mar 20 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
js给onclick赋值传参数的两种方法
Nov 25 Javascript
jQuery焦点图插件SaySlide
Dec 21 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
Jan 20 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 Javascript
详解vue服务端渲染(SSR)初探
Jun 19 #Javascript
jQuery实现简单的手风琴效果
Apr 17 #jQuery
原生JS+Canvas实现五子棋游戏实例
Jun 19 #Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 #Javascript
Node.js中 __dirname 的使用介绍
Jun 19 #Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
Jun 19 #Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
Jun 19 #Javascript
You might like
用PHP来计算某个目录大小的方法
2014/04/01 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
document.open() 与 document.write()的区别
2007/08/13 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
详解python的变量缓存机制
2021/01/24 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
主持人婚宴答谢词
2014/01/28 职场文书
师德师风承诺书
2014/05/23 职场文书
校长四风对照检查材料
2014/09/27 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
2014年卫生院工作总结
2014/12/03 职场文书