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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 18 Javascript
一些主流JS框架中DOMReady事件的实现小结
Feb 12 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
Jul 04 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
Aug 23 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
使用jsonp实现跨域获取数据实例讲解
Dec 25 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
discuz表情的JS提取方法分析
Mar 22 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
May 22 Javascript
巧妙运用v-model实现父子组件传值的方法示例
Apr 07 Javascript
js中的面向对象之对象常见创建方法详解
Dec 16 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
php设计模式之委托模式
2016/02/13 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python字典改变value值方法总结
2019/06/21 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
基于django传递数据到后端的例子
2019/08/16 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
普天C++笔试题
2016/03/20 面试题
西式婚礼证婚词
2014/01/12 职场文书
市场安全管理制度
2014/01/26 职场文书
六年级数学教学反思
2014/02/03 职场文书
供应链金融服务方案
2014/05/25 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
活动简报范文
2015/07/22 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
Python利用capstone实现反汇编
2022/04/06 Python
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库