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 相关文章推荐
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
Jquery 切换不同图片示例代码
Dec 05 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
Oct 29 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
微信小程序 教程之列表渲染
Oct 18 Javascript
JavaScript表单验证实现代码
May 22 Javascript
Angular中的interceptors拦截器
Jun 25 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
解析vue中的$mount
Dec 21 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
图文详解vue框架安装步骤
Feb 12 Javascript
openlayers4实现点动态扩散
Aug 17 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
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
php对称加密算法示例
2014/05/07 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
javascript jQuery插件练习
2008/12/24 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
python实现人人网登录示例分享
2014/01/19 Python
Python for循环生成列表的实例
2018/06/15 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
从python读取sql的实例方法
2020/07/21 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
小学语文业务学习材料
2014/06/02 职场文书
关于倡议书的范文
2015/04/29 职场文书