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 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
JavaScript类型系统之Object详解
Jan 07 Javascript
Vue.js每天必学之过渡与动画
Sep 06 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
详解如何在vue中使用sass
Jun 21 Javascript
Node.js实现发送邮件功能
Nov 06 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 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
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
thinkphp分页实现效果
2016/10/13 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
在Python中进行自动化单元测试的教程
2015/04/15 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
python爬虫之百度API调用方法
2017/06/11 Python
用Python实现KNN分类算法
2017/12/22 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python实现一个简单的ping工具方法
2019/01/31 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
中专生职业生涯规划书范文
2013/12/29 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
教师个人自我鉴定
2014/02/08 职场文书
法律专业自荐信
2014/06/03 职场文书
建筑学专业自荐书
2014/07/09 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
党校学习个人总结
2015/02/15 职场文书
环保证明
2015/06/23 职场文书
生产设备维护保养制度
2015/08/06 职场文书
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android