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 Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
js简单的表格添加行和删除行操作示例
Mar 31 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
jQuery实现页面滚动时动态加载内容的方法
Mar 20 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
RequireJS 依赖关系的实例(推荐)
Jan 21 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
Jun 24 Javascript
基于JavaScript获取base64图片大小
Oct 18 Javascript
解决Vue-cli无法编译es6的问题
Oct 30 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
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
PHP 使用memcached简单示例分享
2015/03/05 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
JavaScript高级程序设计
2006/12/29 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
chrome原生方法之数组
2011/11/30 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
汽车销售求职自荐信
2013/10/01 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
教代会闭幕词
2015/01/28 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
面试通知邮件
2015/04/20 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android