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 相关文章推荐
javascript十个最常用的自定义函数(中文版)
Sep 07 Javascript
jQuery chili图片远处放大插件
Nov 30 Javascript
XENON基于JSON变种
Jul 27 Javascript
JS实现单行文字不间断向上滚动的方法
Jan 29 Javascript
动态创建按钮的JavaScript代码
Jan 29 Javascript
Angularjs全局变量被作用域监听的正确姿势
Feb 06 Javascript
详解如何较好的使用js
Dec 16 Javascript
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
JavaScript使用FileReader实现图片上传预览效果
Mar 27 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
Jun 05 Javascript
ant design charts 获取后端接口数据展示
May 25 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的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
vue.js表格分页示例
2016/10/18 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
python代码区分大小写吗
2020/06/17 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
2015年化妆品销售工作总结
2015/05/11 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
高中语文教学反思范文
2016/02/16 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
js基础语法与maven项目配置教程案例
2021/07/15 Javascript