angular+ionic 的app上拉加载更新数据实现方法


Posted in Javascript onJanuary 16, 2017

第一步,首先需要在<ion-content>标签里面加入标签<ion-infinite-scroll ng-if="hasmore" on-infinite="loadMore()" distance="5%"></ion-infinite-scroll>

里面的属性解释,

ng-if  值 布尔型,如果为true,则可以触发上拉事件
on-infinite 上拉时触发的事件
distance 列表底部滚动到可触发上拉事件的距离,默认为1%
icon 加载时显示的加载图标,默认为 'ion-loading-d'

第二步:在控制器内书写

$scope.hasmore = true;

定义可触发事件的对象

然后书写loadMore事件

//上拉事件 
    $scope.loadMore = function () { 
      $scope.dataValue.page++; 
      loadajax(); 
    }

然后写loadajax事件

function loadajax() { 
      var dataValue = $scope.dataValue; 
      var ip = "http://" + $rootScope.form.ip + "/appGetpage"; 
      var req = { 
        method: 'POST', //请求的方式 
        url: ip, //请求的地址 
        headers: { 
          'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 
          'Accept': '*/*' 
        }, //请求的头,如果默认可以不写 
        timeout: 5000, //超时时间,还没有测试 
        data: "value=" + JSON.stringify(dataValue) //message 必须是a=b&c=d的格式 
      }; 
      $http(req).success(function (data) { 
        if (data.data.length == 0) { 
          $scope.hasmore = false;//这里判断是否还能获取到数据,如果没有获取数据,则不再触发加载事件 
          return; 
        } 
        $scope.items = $scope.items.concat(data.data); 
      }).error(function () { 
        console.log("err"); 
      }).finally(function () { 
        $scope.$broadcast('scroll.infiniteScrollComplete');//这里是告诉ionic更新数据完成,可以再次触发更新事件 
        $scope.$broadcast('scroll.refreshComplete'); 
      }); 
    }

以上所述是小编给大家介绍的angular+ionic 的app上拉加载更新数据实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
Javscript删除数组中指定元素并返回新数组
Mar 06 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
Oct 16 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
Feb 28 Javascript
Vue实例中生命周期created和mounted的区别详解
Aug 25 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
Jul 24 Javascript
vue项目实现多语言切换的思路
Sep 17 Javascript
Vue3中的Refs和Ref详情
Nov 11 Vue.js
jQuery实现简易的输入框字数计数功能示例
Jan 16 #Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 #Javascript
Javascript的this用法
Jan 16 #Javascript
jQuery向webApi提交post json数据
Jan 16 #Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 #Javascript
jQuery插件扩展操作入门示例
Jan 16 #Javascript
jQuery插件版本冲突的处理方法分析
Jan 16 #Javascript
You might like
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
PHP新手上路(十一)
2006/10/09 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
php获取远程文件大小
2015/10/20 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python装饰器常见使用方法分析
2019/06/26 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
经典广告词大全
2014/03/14 职场文书
驻村工作简报
2015/07/20 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js