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 相关文章推荐
img的onload的另类用法
Jan 10 Javascript
js css样式操作代码(批量操作)
Oct 09 Javascript
javascript 按回车键相应按钮提交事件
Nov 02 Javascript
js 幻灯片的实现
Dec 06 Javascript
javascript表格的渲染组件
Jul 03 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
简单实现js轮播图效果
Jul 14 Javascript
如何抽象一个Vue公共组件
Oct 17 Javascript
es6基础学习之解构赋值
Dec 10 Javascript
js+h5 canvas实现图片验证码
Oct 11 Javascript
利用js canvas实现五子棋游戏
Oct 11 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用mysql数据库存储session的代码
2010/03/05 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
PHP Directory 函数的详解
2013/03/07 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
python实现智能语音天气预报
2019/12/02 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
python 制作网站小说下载器
2021/02/20 Python
生物化工工艺专业应届生求职信
2013/10/08 职场文书
《乌塔》教学反思
2014/02/17 职场文书
2015年电教工作总结
2015/05/26 职场文书
黄河绝恋观后感
2015/06/08 职场文书
子女赡养老人协议书
2016/03/23 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
基于Python实现一个春节倒计时脚本
2022/01/22 Python
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL