Angularjs实现分页和分页算法的示例代码
发布时间 - 2026-01-10 22:03:34 点击率:次对于大多数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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Java垃圾回收器的方法和原理总结
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
Windows Hello人脸识别突然无法使用
简单实现Android验证码
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Swift中循环语句中的转移语句 break 和 continue
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Python结构化数据采集_字段抽取解析【教程】
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
网站建设保证美观性,需要考虑的几点问题!
长沙做网站要多少钱,长沙国安网络怎么样?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel如何使用Collections进行数据处理?(实用方法示例)
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
EditPlus 正则表达式 实战(3)
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
C++时间戳转换成日期时间的步骤和示例代码
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
JS弹性运动实现方法分析
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何在 React 中条件性地遍历数组并渲染元素
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel如何使用.env文件管理环境变量?(最佳实践)
网站图片在线制作软件,怎么在图片上做链接?
如何快速搭建FTP站点实现文件共享?
个人网站制作流程图片大全,个人网站如何注销?
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
深圳网站制作平台,深圳市做网站好的公司有哪些?
Android使用GridView实现日历的简单功能
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
香港服务器WordPress建站指南:SEO优化与高效部署策略
javascript如何操作浏览器历史记录_怎样实现无刷新导航

