全网整合营销服务商

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

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

angularjs实现上拉加载和下拉刷新数据功能

虽说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或者网站是什么?  如何高效配置IIS服务器搭建网站?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何在Windows环境下新建FTP站点并设置权限?  表情包在线制作网站免费,表情包怎么弄?  怀化网站制作公司,怀化新生儿上户网上办理流程?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  C++时间戳转换成日期时间的步骤和示例代码  如何在Golang中指定模块版本_使用go.mod控制版本号  seo网站制作优化,网站SEO优化步骤有哪些?  常州企业建站如何选择最佳模板?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  制作销售网站教学视频,销售网站有哪些?  如何快速生成可下载的建站源码工具?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  建站之星后台密码遗忘或太弱?如何重置与强化?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何在宝塔面板中修改默认建站目录?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  如何用IIS7快速搭建并优化网站站点?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  实惠建站价格推荐:2025年高性价比自助建站套餐解析  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何在Windows 2008云服务器安全搭建网站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在万网自助建站中设置域名及备案?  如何将凡科建站内容保存为本地文件?  ,制作一个手机app网站要多少钱?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  建站之星后台管理:高效配置与模板优化提升用户体验  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  定制建站是什么?如何实现个性化需求?  html制作网站的步骤有哪些,iapp如何添加网页?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?    南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  建站主机与服务器功能差异如何区分?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  已有域名建站全流程解析:网站搭建步骤与建站工具选择  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何快速启动建站代理加盟业务?  如何在云主机上快速搭建多站点网站?  建站之星免费版是否永久可用?  东莞市网站制作公司有哪些,东莞找工作用什么网站好? 

您的项目需求

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