欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

angular.js分页代码的实例

程序员文章站 2022-03-20 21:08:46
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转...

对于大多数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分页代码的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。