虽说AngularJS 1.x版本中对于上拉加载,下拉刷新数据功能都有做些封装,但还是有些人不清楚。其实我一开始也是不懂的,so.现在把搞懂的记录下免得少走弯路。

now,begin:先说下拉刷新吧,原理就是每次下拉都重新去服务器请求过一次新的数据。一般这种刷新功能的响应数据(也就是服务器返回的(json)数据)中都会带有
"rowsOfPage": 3,
"currentPage": 1,
"totalPages": 10,
"totalRows": 40,
"rowsOfPage":10,
"minRowNumber": 1,
"maxRowNumber": 3,
这样的属性字段。所以我们下拉刷新时只要把请求参数设置为currentPage:1,rowsOfPage:10。也就是要设置当前页始终的值为1,一页要显示多少行。然后把返回的data保存在一个数组中,其实这样基本就算是完成了这功能,但为了严谨些我们最好再判断下这个数组的长度是否小于总条数。再在这判断里面再判断下这个数组长度是否等于0,如果是就说明没有数据。我这边就直接赋值一下下拉刷新的执行代码。
$scope.hasMore = false;
// $scope.dataNull=false; // 无数据提示
$scope.SName = "您当前没有待办事务";
$scope.do_refresher = function() {
$scope.currentPage = 1;
$scope.bItems = [];
ajax.post(reqUrl, {
"rowsOfPage": rowsOfPage,
"currentPage": $scope.currentPage
}, function(listdata, successful) {
if (successful) {
$scope.bItems = listdata.datas || [];
$scope.hasMore = ($scope.bItems.length < listdata.totalRows);
if ($scope.bItems.length == 0) {
$scope.dataNull = true;
} else {
$scope.dataNull = false;
}
} else {
$scope.hasMore = false;
}
$scope.$broadcast("scroll.refreshComplete");
});
而在页面中只要调用下<ion-refresher pulling-text="下拉刷新..." on-refresh="do_refresher()"></ion-refresher> 就可以了,其中$scope.$broadcast("scroll.refreshComplete");这个的作用是请求到数据刷新页面。
接下来是上拉加载数据功能。这个会比下拉刷新麻烦一点,但都懂了话也还好。上拉加载原理理解:请求的currentPage参数值为累加1.把请求到数据用push方法循环加到已有数据的数组中。这是理想的数据,我们平常在开发中还要判断这个是否有数据加载。我就先上下代码再说明应该会更好理解:
/*
* 上拉加载,分批加载服务端剩余的数据
*/
$scope.do_infinite = function() {
if (!$scope.hasMore) {
$scope.$broadcast("scroll.infiniteScrollComplete");
return;
}
// 如果当前页数大于等于总页数,说明已经没数据可再加载了。
$scope.currentPage += 1;
ajax.post(reqUrl, {
"rowsOfPage": rowsOfPage,
"currentPage": $scope.currentPage
}, function(listdata, successful) {
if (successful) {
//window.debug && alert("length " + listdata.datas.length + " yeshu " + $scope.currentPage);
$scope.currentPage = listdata.currentPage;
for (var i = 0; i < listdata.datas.length; i++) {
$scope.bItems.push(listdata.datas[i]);
}
$scope.hasMore = ($scope.bItems.length < listdata.totalRows);
} else {
$scope.hasMore = false;
}
$scope.$broadcast("scroll.infiniteScrollComplete");
});
其中hasmore是布尔值判断是否还有更多数据。然后在请求参数currentPage的值是用累加的。用for循环把返回的数据push到已有数据的数组中,再判断当前的数组长度(也就是获取到本地的总条数)是否等于请求到返回数据总条数属性的值。如果这布尔值为true说明还有数据。同上 $scope.$broadcast("scroll.infiniteScrollComplete"); 也是刷新页面数据。在页面中只要在ion-list下面添加<ion-infinite-scroll ng-if="hasMore" on-infinite="do_infinite()" immediate-check="false"></ion-infinite-scroll> 就可以执行。
note:在html页面中,下拉刷新的功能要放在ion-list上面,
上拉加载则放在ion-list下面 有图片总不会理解错了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# angularjs
# 上下拉刷新
# 下拉刷新
# 下拉加载
# vue插件mescroll.js实现移动端上拉加载和下拉刷新
# vue.js整合vux中的上拉加载下拉刷新实例教程
# mescroll.js上拉加载下拉刷新组件使用详解
# dropload.js插件下拉刷新和上拉加载使用详解
# vue.js移动端app之上拉加载以及下拉刷新实战
# JS 插件dropload下拉刷新、上拉加载使用小结
# JS+CSS实现下拉刷新/上拉加载插件
# 基于iscroll.js实现下拉刷新和上拉加载效果
# 原生js实现下拉刷新和上拉加载更多
# 加载
# 值为
# 放在
# 条数
# 已有
# 组中
# 就可以
# 这是
# 都有
# 在这
# 我一
# 不懂
# 而在
# 要把
# 不清楚
# 错了
# 走弯路
# 布尔
# 有些人
# 在一
相关文章:
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Python路径拼接规范_跨平台处理说明【指导】
音乐网站服务器如何优化API响应速度?
,制作一个手机app网站要多少钱?
如何通过WDCP绑定主域名及创建子域名站点?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
制作网站的基本流程,设计网站的软件是什么?
长沙企业网站制作哪家好,长沙水业集团官方网站?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
h5在线制作网站电脑版下载,h5网页制作软件?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
PHP 500报错的快速解决方法
制作网站怎么制作,*游戏网站怎么搭建?
如何快速上传建站程序避免常见错误?
如何在阿里云虚拟服务器快速搭建网站?
建站之星如何取消后台验证码生成?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
Android滚轮选择时间控件使用详解
济南企业网站制作公司,济南社保单位网上缴费步骤?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
江苏网站制作公司有哪些,江苏书法考级官方网站?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
如何零基础在云服务器搭建WordPress站点?
制作网站公司那家好,网络公司是做什么的?
如何正确选择百度移动适配建站域名?
如何在万网ECS上快速搭建专属网站?
如何选择可靠的免备案建站服务器?
b2c电商网站制作流程,b2c水平综合的电商平台?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
,怎么在广州志愿者网站注册?
建站之星会员如何解锁更多建站功能?
公司门户网站制作流程,华为官网怎么做?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何用PHP快速搭建高效网站?分步指南
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何通过虚拟主机空间快速建站?
c# await 一个已经完成的Task会发生什么
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
建站主机与服务器功能差异如何区分?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何基于云服务器快速搭建个人网站?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
公众号网站制作网页,微信公众号怎么制作?
如何挑选优质建站一级代理提升网站排名?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何在云服务器上快速搭建个人网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何在橙子建站中快速调整背景颜色?
*请认真填写需求信息,我们会在24小时内与您取得联系。