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 相关文章推荐
两个JavaScript jsFiddle JSBin在线调试器
Mar 14 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
JS文本框默认值处理详解
Jul 10 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
href下载文件根据id取url并下载
May 28 Javascript
javascript写的异步加载js文件函数(支持数组传参)
Jun 07 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
Oct 28 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
使用jQuery.Pin垂直滚动时固定导航
May 24 jQuery
Angular6封装http请求的步骤详解
Aug 13 Javascript
深入浅析Node环境和浏览器的区别
Aug 14 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python获取Linux发行版名称
2019/08/30 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
介绍一下Java中的static关键字
2012/05/12 面试题
2014年师德承诺书
2014/05/23 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
面试通知单大全
2015/04/20 职场文书
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python