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为网页增加夜间模式
Jan 26 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
Javascript 获取鼠标当前的位置实现方法
Oct 27 Javascript
JS一个简单的注册页面实例
Sep 05 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
vue集成kindeditor富文本的实现示例代码
Jun 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
php注销代码(session注销)
2012/05/31 PHP
PHP实现简单登录界面
2019/10/23 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
vue.js的提示组件
2017/03/02 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Sublime开发python程序的示例代码
2018/01/24 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
canvas使用注意点总结
2013/07/19 HTML / CSS
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
中专生自我鉴定范文
2014/02/02 职场文书
施工员岗位职责
2014/03/16 职场文书
大学体育课感想
2015/08/10 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
Python实现天气查询软件
2021/06/07 Python
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
Nginx配置使用详解
2022/07/07 Servers