Ionic如何实现下拉刷新与上拉加载功能


Posted in Javascript onJune 03, 2016

IONIC 是目前最有潜力的一款 HTML5 手机应用开发框架。通过 SASS 构建应用程序,它提供了很多 UI 组件来帮助开发者开发强大的应用。 它使用 JavaScript MVVM 框架和 AngularJS 来增强应用。提供数据的双向绑定,使用它成为 Web 和移动开发者的共同选择。Ionic是一个专注于用WEB开发技术,基于HTML5创建类似于手机平台原生应用的一个开发框架。Ionic框架的目的是从web的角度开发手机应用,基于PhoneGap的编译平台,可以实现编译成各个平台的应用程序。

本文给大家介绍 Ioinc中怎么实现 下拉刷新和上拉加载功能的。在项目开发中经常遇到此功能,感兴趣的朋友一起看看吧。

HTML部分

<ion-view view-title="消息通知">
<ion-content class="padding">
 <!-- <ion-refresher> 下拉刷新指令 -->
<ion-refresher pulling-text="Pull to refresh" on-refresh="vm.doRefresh()"></ion-refresher>
<div class="list card" ng-repeat="message in vm.messages" >
<div class="item item-divider item-icon-right">{{message.title}}
<i class="icon" ng-click="vm.show(message)" ng-class="message.static?‘ion-arrow-down-b‘:‘ion-arrow-right-b‘"></i></div>
<div class="item item-body">
<div>
{{message.static?message.content:message.content.substr(, )}}
</div>
</div>
</div>
<!-- ion-infinite-scroll 上拉加载数据指令 distance默认% nf-if的值为false时,就禁止执行on-infinite -->
<ion-infinite-scroll ng-if="!vm.moredata" on-infinite="vm.loadMore()" distance="%" ></ion-infinite-scroll>
</ion-content>
</ion-view>

JS部分

on-refresh 下拉触发的函数 函数执行结束之前必须广播下该事件结束 $scope.$broadcast(‘scroll.refreshComplete‘);

on-infinite 上拉触发的函数 同样需要广播事件结束 $scope.$broadcast(‘scroll.infiniteScrollComplete‘);

angular.module(‘starter.controllers‘, [])
.controller(‘InfoCtrl‘, function($rootScope, $timeout, $interval, $scope, $http, services) {
var vm = $scope.vm = {
moredata: false,
messages: [],
pagination: {
perPage: ,
currentPage: 
},
init: function () {
services.getMessages({perPage: vm.pagination.perPage, page: vm.pagination.currentPage}, function (data) {
vm.messages = data;
})
},
show: function (message) {
if (message.static) {
message.static = false;
} else {
message.static = true;
}
},
doRefresh: function () {
$timeout(function () {
$scope.$broadcast(‘scroll.refreshComplete‘);
}, );
},
loadMore: function () {
vm.pagination.currentPage += ;
services.getMessages({perPage: vm.pagination.perPage, page: vm.pagination.currentPage}, function (data) {
vm.messages = vm.messages.concat(data);
if (data.length == ) {
vm.moredata = true;
};
$scope.$broadcast(‘scroll.infiniteScrollComplete‘);
})
} 
}
vm.init();
})

此处的messages 是view显示的数据,pagination是做分页加载显示的参数,service是我封装的$http服务,show方法是view信息显示的开关(这些都可以不用注意)!

关于小编给大家介绍的Ionic如何实现下拉刷新与上拉加载的相关内容就给大家介绍完了,希望对大家有所帮助,如果大家想了解更多内容敬请关注三水点靠木网站!

Javascript 相关文章推荐
js 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
jqueryUI里拖拽排序示例分析
Feb 26 Javascript
jQuery定义背景动态切换效果的方法
Mar 23 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
JS中对象与字符串的互相转换详解
May 20 Javascript
JavaScript实现前端实时搜索功能
Mar 26 Javascript
微信、QQ、微博、Safari中使用js唤起App
Jan 24 Javascript
详解jquery和vue对比
Apr 16 jQuery
QML实现圆环颜色选择器
Sep 25 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
Nov 04 Javascript
简单了解JavaScript操作XPath的一些基本方法
Jun 03 #Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 #Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 #Javascript
深入理解JavaScript内置函数
Jun 03 #Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 #Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 #Javascript
浅谈JavaScript 浏览器对象
Jun 03 #Javascript
You might like
PHP 实例化类的一点摘记
2008/03/23 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
js 调整select 位置的函数
2008/02/21 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python简单连接MongoDB数据库的方法
2016/03/15 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python实现图片添加文字
2019/11/26 Python
Django ModelForm操作及验证方式
2020/03/30 Python
浅谈Python中的字符串
2020/06/10 Python
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
项目经理岗位职责
2013/11/11 职场文书
集团薪酬管理制度
2014/01/13 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
慰问信模板
2015/02/14 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
高二数学教学反思
2016/02/18 职场文书
高中班主任寄语
2019/06/21 职场文书
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android