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 相关文章推荐
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
JS实现获取当前URL和来源URL的方法
Aug 24 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
jquery UI Datepicker时间控件冲突问题解决
Dec 16 Javascript
Vue自定义全局Toast和Loading的实例详解
Apr 18 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 HandlerSocket的使用
2011/05/02 PHP
php的大小写敏感问题整理
2011/12/29 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
PHP 实现重载
2021/03/09 PHP
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
javascript测试题练习代码
2012/10/10 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
python制作花瓣网美女图片爬虫
2015/10/28 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
详解django中Template语言
2020/02/22 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
Python进行统计建模
2020/08/10 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
写好自荐信的要点
2013/11/06 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
运动会表扬稿范文
2015/05/05 职场文书
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL