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的一些总结
Nov 03 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
May 06 Javascript
javascript数组详解
Oct 22 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
微信小程序中setInterval的使用方法
Sep 29 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 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
提取HTML标签
2006/10/09 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
python关键字and和or用法实例
2015/05/28 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
Python项目打包成二进制的方法
2020/12/30 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
大学军训感言200字
2014/02/26 职场文书
农业项目投资意向书
2015/05/09 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python