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学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
get(0).tagName获得作用标签示例代码
Oct 08 Javascript
node.js中的buffer.toString方法使用说明
Dec 14 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 Javascript
浅谈jQuery hover(over, out)事件函数
Dec 03 Javascript
配置一个vue3.0项目的完整步骤
Apr 26 Javascript
vue 兄弟组件的信息传递的方法实例详解
Aug 30 Javascript
Express 配置HTML页面访问的实现
Nov 01 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
php获取文件内容最后一行示例
2014/01/09 PHP
php文件操作相关类实例
2015/06/18 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
php字符集转换
2017/01/23 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
python实现动态数组的示例代码
2019/07/15 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python next()和iter()函数原理解析
2020/02/07 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
python实现发送邮件
2021/03/02 Python
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
经理秘书求职自荐信范文
2014/03/23 职场文书
詹天佑教学反思
2014/04/30 职场文书
公司聚餐通知
2015/04/22 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python