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 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
javascript Zifa FormValid 0.1表单验证 代码打包下载
Jun 08 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
JavaScript 的继承
Oct 01 Javascript
jQuery Ajax提交表单查询获得数据实例代码
Sep 19 Javascript
Javascript中的异步编程规范Promises/A详细介绍
Jun 06 Javascript
jquery 实现input输入什么div图层显示什么
Jun 15 Javascript
jQuery搜索子元素的方法
Feb 10 Javascript
jQuery+正则+文本框只能输入数字的实现方法
Oct 07 Javascript
vue.js单页面应用实例的简单实现
Apr 10 Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 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 将excel导入mysql
2009/11/09 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
浅谈React之状态(State)
2018/09/19 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
python 实现插入排序算法
2012/06/05 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
Django数据库表反向生成实例解析
2018/02/06 Python
Python版名片管理系统
2018/11/30 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
化学专业毕业生自荐信
2013/11/15 职场文书
市场营销管理制度
2014/01/29 职场文书
民事答辩状范本
2015/05/21 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
Golang中channel的原理解读(推荐)
2021/10/16 Golang
P站美图推荐——变身女主角特辑
2022/03/20 日漫