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 相关文章推荐
jquery 应用代码 方便的排序功能
Feb 06 Javascript
JS获取各种浏览器窗口大小的方法
Jan 14 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
Apr 13 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
了解JavaScript中let语句
May 30 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
JS Generator 函数的含义与用法实例总结
Apr 08 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
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
高考励志标语
2014/06/05 职场文书
医院领导班子整改方案
2014/10/01 职场文书
博士生专家推荐信
2015/03/25 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
详解MySQL的半同步
2021/04/22 MySQL
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
使用JS实现简易计算器
2021/06/14 Javascript
mysql创建存储过程及函数详解
2021/12/04 MySQL