angular.js分页代码的实例


Posted in Javascript onJuly 27, 2016

对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。现在在学习angular,使用angularjs 分页,基于 directive 实现,样式使用的 bootstrap,直接在 html代码中加入 标签即可调用。

先来看下效果图

angular.js分页代码的实例

实例代码

app.directive('pagePagination', function(){
  return {
    restrict : 'E',
    template : '<div class="pagination-box"><ul class="pagination"><li ng-class="page.style" ng-repeat="page in pageList"><a href="{{ page.link }}">{{ page.name }}</a></li></ul><ul class="pagination" ng-if="pageList[0]"><li class="page-count disabled"><span>共 <b>{{ pageRecord }}</b> 条记录 / 共 <b>{{ pageCount }}</b> 页</span></li></ul></div>',
    replace : true,
    scope : {
      "pageId"      : "=",
      "pageRecord"    : "=",
      "pageSize"     : "=",
      "pageUrlTemplate"  : "="
    },
    controller : ['$scope', function($scope){
       
      $scope.getLink = function(pageId){
        return $scope.pageUrlTemplate.replace("{PAGE}", pageId);
      };
 
      $scope.getPageList = function(){
        var page = [];
        var firstPage = parseInt(( $scope.pageId - 1 ) / $scope._pageSize ) * $scope._pageSize + 1;
        page.push({
          name  : '首页',
          style  : $scope.pageId == 1 ? "disabled" : "",
          link  : $scope.getLink(1)
        });
        page.push({
          name  : '上一页',
          style  : $scope.pageId == 1 ? "disabled" : "",
          link  : $scope.getLink(1)
        });
        for( var pageId = firstPage; pageId < firstPage + 10; pageId ++){
          if( pageId >= 1 && pageId <= $scope.pageCount ){
            page.push({
              name  : pageId,
              link  : $scope.getLink(pageId),
              style  : pageId == $scope.pageId ? "active" : ""
            });
          }
        }
        page.push({
          name  : '下一页',
          style  : $scope.pageId == $scope.pageCount ? "disabled" : "",
          link  : $scope.getLink($scope.pageCount)
        });
        page.push({
          name  : '尾页',
          style  : $scope.pageId == $scope.pageCount ? "disabled" : "",
          link  : $scope.getLink($scope.pageCount)
        });
        return page;
      };
 
      $scope.pageInit = function(){
        if( !$scope.pageId || !$scope.pageRecord ){
          setTimeout(function(){
            $scope.$apply(function(){
              $scope.pageInit();
            });
          }, 10);
        }else{
          if( !!$scope.pageSize ){
            $scope._pageSize = parseInt($scope.pageSize);
          }else{
            $scope._pageSize = 10;
          }
          $scope.pageId    = parseInt($scope.pageId);
          $scope.pageCount  = parseInt(( $scope.pageRecord - 1 ) / $scope._pageSize ) + 1;
          if( $scope.pageId < 1 ){
            $scope.pageId = 1;
          }else if( $scope.pageId > $scope.pageCount ){
            $scope.pageId = $scope.pageCount;
          }
          $scope.pageLoad   = true;
          $scope.pageList   = $scope.getPageList();
        }
      };
       
      $scope.pageLoad = false;
      $scope.pageInit();
    }]
  }
});

调用代码:

<page-pagination
  page-id="pageId"
  page-record="recordCount"
  page-url-template="urlTemplate">
</page-pagination>

以上就是angular.js分页代码的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript,jquery闭包概念分析
Jun 19 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
基于jquery打造的百分比动态色彩条插件
Sep 19 Javascript
使用js检测浏览器的实现代码
May 14 Javascript
js获取某元素的class里面的css属性值代码
Jan 16 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
Feb 22 Javascript
angular4 JavaScript内存溢出问题
Mar 06 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 Javascript
JavaScript学习教程之cookie与webstorage
Jun 23 Javascript
一次微信小程序内地图的使用实战记录
Sep 09 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
Jul 27 #Javascript
jquery动态遍历Json对象的属性和值的方法
Jul 27 #Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 #Javascript
js中遍历对象的属性和值的方法
Jul 27 #Javascript
js中的关联数组与普通数组详解
Jul 27 #Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 #Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 #Javascript
You might like
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
js中string转int把String类型转化成int类型
2014/08/13 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
Python新手实现2048小游戏
2015/03/31 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python socket 聊天室实例代码详解
2019/11/14 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python求前n个阶乘的和实例
2020/04/02 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
2014年计生标语
2014/06/23 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
个人合伙协议书范本
2014/10/14 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
岗位聘任协议书
2015/09/21 职场文书
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python