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 ajax例子返回值详解
Sep 11 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
May 30 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
Sep 01 Javascript
js重写方法的简单实现
Jul 10 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 Javascript
vue的$http的get请求要加上params操作
Nov 12 Javascript
vue3获取当前路由地址
Feb 18 Vue.js
简单了解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你的验证码安全码?
2007/01/02 PHP
php5 mysql分页实例代码
2008/04/10 PHP
PHP 身份验证方面的函数
2009/10/11 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
javascript 定义新对象方法
2010/02/20 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
Python list操作用法总结
2015/11/10 Python
python数据结构之链表详解
2017/09/12 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
C#软件工程师英语面试题
2015/06/07 面试题
关于教师节的演讲稿
2014/09/04 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
Python使用pyecharts控件绘制图表
2022/06/05 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python