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 相关文章推荐
鼠标经过的文本框textbox变色
May 21 Javascript
JS正则中的RegExp对象对象
Nov 07 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
Immutable 在 JavaScript 中的应用
May 02 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
Sep 18 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
利用JS实现scroll自定义滚动效果详解
Oct 17 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
解决vue打包项目后刷新404的问题
Mar 06 Javascript
node.js 微信开发之定时获取access_token
Feb 07 Javascript
vue router返回到指定的路由的场景分析
Nov 10 Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 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 常用字符串函数总结
2008/03/15 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
分享3个php获取日历的函数
2015/09/25 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
详解Python验证码识别
2016/01/25 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
python 监控logcat关键字功能
2020/09/04 Python
PHP如何对用户密码进行加密
2014/07/31 面试题
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
高三霸气励志标语
2014/06/24 职场文书
导游词范文
2015/02/13 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书