全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Angularjs实现分页和分页算法的示例代码

对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示。

页面展示效果:

页面HTML代码:

<table class="table table-striped" style="margin: 0px;"> 
   <thead> 
    <tr> 
      <td>选择</td> 
      <td>企业名称</td>                
      <td>企业地址</td> 
      <td>状态</td> 
    </tr> 
  </thead> 
  <tbody> 
    <tr ng-repeat="l in list"> 
      <td><input type="radio" name="id" ng-click="select(l.id)" value="{{l.id}}" /></td> 
      <td>{{l.name}}</td> 
      <td>{{l.address}}</td> 
      <td>{{l.status_str}}</td> 
    </tr> 
  </tbody> 
</table> 
<!-- paging --> 
<ul class="pagination" style="margin: 0px;" > 
    <li ng-class="{true:'disabled'}[p_current==1]"><a href="javascript:void(0);" ng-click="p_index()">首页</a></li> 
    <li ng-repeat="page in pages" ng-class="{true:'active'}[p_current==page]"><a href="javascript:void(0);" ng-click="load_page(page)">{{ page }}</a></li> 
    <li ng-class="{true:'disabled'}[p_current==p_all_page]"><a href="javascript:void(0);" ng-click="p_last()">尾页</a></li> 
</ul> 
<span style="vertical-align: 12px;"> 共:{{count}} 条</span> 

Js代码:

var app = angular.module("myApp",[]);   
app.controller("map_ctrl",function($scope,$http,$location){ 
  //配置 
  $scope.count = 0; 
  $scope.p_pernum = 10; 
  //变量 
  $scope.p_current = 1; 
  $scope.p_all_page =0; 
  $scope.pages = []; 
  //初始化第一页 
  _get($scope.p_current,$scope.p_pernum,function(){ 
    alert("我是第一次加载"); 
  }); 
  //获取数据 
  var _get = function(page,size,callback){ 
    $http.get("xxx.html?status=0&page="+page+"&size="+size).success(function(res){ 
      if(res&&res.status==1){ 
        $scope.count=res.count; 
        $scope.list=res.list; 
        $scope.p_current = page; 
        $scope.p_all_page =Math.ceil($scope.count/$scope.p_pernum); 
        reloadPno(); 
        callback(); 
      }else{ 
        alert("加载失败"); 
      } 
    });  
  } 
  //单选按钮选中 
  $scope.select= function(id){ 
    alert(id); 
  } 
  //首页 
  $scope.p_index = function(){ 
    $scope.load_page(1); 
  } 
  //尾页 
  $scope.p_last = function(){ 
    $scope.load_page($scope.p_all_page); 
  } 
  //加载某一页 
  $scope.load_page = function(page){ 
    _get(page,$scope.p_pernum,function(){ }); 
  }; 
  //初始化页码 
  var reloadPno = function(){ 
     $scope.pages=calculateIndexes($scope.p_current,$scope.p_all_page,8); 
    }; 
//分页算法 
var calculateIndexes = function (current, length, displayLength) { 
  var indexes = []; 
  var start = Math.round(current - displayLength / 2); 
  var end = Math.round(current + displayLength / 2); 
  if (start <= 1) { 
    start = 1; 
    end = start + displayLength - 1; 
    if (end >= length - 1) { 
      end = length - 1; 
    } 
  } 
  if (end >= length - 1) { 
    end = length; 
    start = end - displayLength + 1; 
    if (start <= 1) { 
      start = 1; 
    } 
  } 
  for (var i = start; i <= end; i++) { 
    indexes.push(i); 
  } 
  return indexes; 
 }; 
  
}); 

分页算法:

current :当前页码,length:总页码,displayLength:显示长度      @return  array[1,2,3,4,5,6,7,8]     

var calculateIndexes = function (current, length, displayLength) { 
  var indexes = []; 
  var start = Math.round(current - displayLength / 2); 
  var end = Math.round(current + displayLength / 2); 
  if (start <= 1) { 
    start = 1; 
    end = start + displayLength - 1; 
    if (end >= length - 1) { 
      end = length - 1; 
    } 
  } 
  if (end >= length - 1) { 
    end = length ; 
    start = end - displayLength + 1; 
    if (start <= 1) { 
      start = 1; 
    } 
  } 
  for (var i = start; i <= end; i++) { 
    indexes.push(i); 
  } 
  return indexes; 
}; 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angularjs  # 分页  # angularjs实现分页  # 分页实例  # AngularJS 与Bootstrap实现表格分页实例代码  # Angularjs 实现分页功能及示例代码  # AngularJS实现分页显示数据库信息  # 学习Angularjs分页指令  # 基于Angularjs实现分页功能  # AngularJs实现分页功能不带省略号的代码  # angularjs表格分页功能详解  # ANGULARJS中使用JQUERY分页控件  # 尾页  # 加载  # 首页  # 我是  # 很好  # 是一种  # 较多  # 会比  # 在这种情况下  # 第一页  # 大家多多  # 单选  # 情况下  # address  # paging  # status_str  # radio  # type  # id 


相关文章: 如何挑选高效建站主机与优质域名?  如何快速登录WAP自助建站平台?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何选择服务器才能高效搭建专属网站?  建站主机与服务器功能差异如何区分?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星云端配置指南:模板选择与SEO优化一键生成  广平建站公司哪家专业可靠?如何选择?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  如何通过VPS建站无需域名直接访问?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何在腾讯云服务器上快速搭建个人网站?  html制作网站的步骤有哪些,iapp如何添加网页?  网站制作企业,网站的banner和导航栏是指什么?  C#如何在一个XML文件中查找并替换文本内容  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  javascript中对象的定义、使用以及对象和原型链操作小结  如何基于PHP生成高效IDC网络公司建站源码?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何用腾讯建站主机快速创建免费网站?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何在IIS7中新建站点?详细步骤解析  已有域名和空间如何搭建网站?  名字制作网站免费,所有小说网站的名字?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  临沂网站制作企业,临沂第三中学官方网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  香港服务器部署网站为何提示未备案?  太平洋网站制作公司,网络用语太平洋是什么意思?  如何在云指建站中生成FTP站点?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站之星多图banner生成与模板自定义指南  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  ,网站推广常用方法?  寿县云建站:智能SEO优化与多行业模板快速上线指南  Android自定义listview布局实现上拉加载下拉刷新功能  如何在局域网内绑定自建网站域名?  建站主机选购指南:核心配置优化与品牌推荐方案  如何在自有机房高效搭建专业网站?  如何破解联通资金短缺导致的基站建设难题?  如何配置IIS站点权限与局域网访问?  建站之星logo尺寸如何设置最合适?  宿州网站制作公司兴策,安徽省低保查询网站?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  网站制作说明怎么写,简述网页设计的流程并说明原因?  ,怎么在广州志愿者网站注册? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。