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异步编程的4种方法
Feb 19 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
Mar 17 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
JS 对java返回的json格式的数据处理方法
Dec 05 Javascript
如何实现星星评价(jquery.raty.js插件)
Dec 21 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
Sep 21 Javascript
在Chrome DevTools中调试JavaScript的实现
Apr 07 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
Javascript - HTML的request类
2006/07/15 Javascript
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
js实现多图和单图上传显示
2019/12/18 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python实现复制整个目录的方法
2015/05/12 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
python编写猜数字小游戏
2019/10/06 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
介绍Ibatis的核心类
2013/11/18 面试题
学校后勤岗位职责
2014/02/19 职场文书
临床医师个人自我评价
2014/04/06 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
体育馆的标语
2014/06/24 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB