下拉刷新&上拉加载
效果演示

核心code
html
<ion-view view-title="学生list">
<ion-content >
<ion-refresher spinner="spiral" on-refresh="doRefresh()"></ion-refresher>
<div class="demoWrapp">
<div class="sutdentItem slide-top" ng-repeat="studnet in students">
<div>姓名:{{studnet.name}}</div>
<div>年龄:{{studnet.age}}</div>
</div>
</div>
<ion-infinite-scroll ng-if="hasMore" immediate-check="false" icon="ion-loading-c" on-infinite="loadMore()" distance="10%">
</ion-content>
</ion-view>
js
testModule.controller('testCtrl',function($scope){
//模拟接口数据
var getSudent=function (data) {
var page=data.page;
if(page==1){
return {
hasMore:true,
list:[
{name:'小明',age:10},
{name:'小红',age:8},
{name:'小黄',age:20},
{name:'小黑',age:16},
{name:'小白',age:14}
]
}
}else if (page==2){
return {
hasMore:true,
list:[
{name:'小蓝',age:20},
{name:'小青',age:10},
{name:'小紫',age:10},
{name:'小一',age:18},
{name:'小二',age:12}
]
}
}else if (page==3){
return {
hasMore:false,
list:[
{name:'张三',age:20},
{name:'李四',age:10}
]
}
}else{
return {
status:'没有数据了'
}
}
};
//获取学生list
var queryStudent=function (param) {
var result=getSudent(param);
$scope.hasMore=result.hasMore;//判断还有没有更多
if(param.page==1){//判断是刷新还是加载更多
$scope.students=result.list;
}else{
$scope.students= $scope.students.concat(result.list);
}
console.log($scope.students)
$scope.$broadcast('scroll.refreshComplete');
$scope.$broadcast('scroll.infiniteScrollComplete');
};
//初始化进来的时候
var init=function() {
$scope.hasMore=false;
$scope.param={page:1 }
queryStudent($scope.param)
}
$scope.$on("$ionicView.beforeEnter",init)
//下拉刷新
$scope.doRefresh=function () {
init()
}
//上拉加载
$scope.loadMore=function () {
$scope.param.page++;
queryStudent($scope.param);
}
})
下边是我用在具体项目中的

<ion-view>
<ion-nav-title>
<div class="bar bar-stable">
<h1 class="title">
账户余额
</h1>
</div>
</ion-nav-title>
<ion-nav-buttons side="right">
<button class="button button-clear">支付设置</button>
</ion-nav-buttons>
<ion-content>
<ion-refresher spinner="spiral" on-refresh="methods.doRefresh()"></ion-refresher>
<div class="card-bg text-center">
<h1>¥{{models.balance}}</h1>
<button ui-sref="rsc.finance_reflect">提现</button>
</div>
<div class="gap-20">
<div class="list">
<li ng-repeat="item in models.carryList">
<span class="date-circle" ng-class="{'date-circle-outline':item.pay_surplus=='recharge'}"></span>
<div class="dateline-left">
<h3 class="text-black">{{item | payType}}</h3>
<h5 ng-if="item.pay_surplus=='recharge'">订单号{{item.orderNo}}</h5>
<h5 class="text-gray1">
{{item.time_creation | dateformatFilter:'yyyy-MM-dd HH:mm'}}
</h5>
</div>
<i class="icon">
<h2 ng-class="{'text-red1':item.pay_surplus=='recharge'}">-¥{{item.amount}}</h2>
</i>
</li>
</div>
</div>
<ion-infinite-scroll immediate-check="false" ng-if="models.hasMore" icon="ion-loading-c" on-infinite="methods.loadMore()" distance="15%">
</ion-infinite-scroll>
</ion-content>
</ion-view>
.controller('balance_ctrl', ['$scope', 'PassService',
function ($scope, PassService) {
//属性
$scope.models = {
balance: 0,
getListParam: {
page: 1
},
hasMore:false
}
//方法
$scope.methods = {
//账户余额
getSurplus: function () {
PassService.getSurplus().then(function (rep) {
$scope.models.balance = rep.data.pay_surplus_amount;
})
},
//提现记录
getList: function () {
PassService.getList($scope.models.getListParam).then(function (rep) {
$scope.models.hasMore=rep.data.exist;
if($scope.models.getListParam.page==1){//判断是刷新还是加载更多
$scope.models.carryList = rep.data.lists;
}else{
$scope.models.carryList = $scope.models.carryList.concat(rep.data.lists);
}
$scope.$broadcast('scroll.refreshComplete');
$scope.$broadcast('scroll.infiniteScrollComplete');
})
},
//上拉加载
loadMore:function () {
$scope.models.getListParam.page++;
$scope.methods.getList()
},
//下拉刷新
doRefresh:function () {
$scope.models.getListParam.page=1;
$scope.methods.getList();
}
}
//生命周期函数系列
$scope.$on("$ionicView.beforeEnter", function () {
$scope.methods.getSurplus()
$scope.methods.getList()
})
}])
下拉刷新&上拉加载的更多相关文章
- Android 下拉刷新上啦加载SmartRefreshLayout + RecyclerView
在弄android刷新的时候,可算是耗费了一番功夫,最后发觉有现成的控件,并且非常好用,这里记录一下. 原文是 https://blog.csdn.net/huangxin112/article/de ...
- SwipeRefreshLayout实现下拉刷新上滑加载
1. 效果图 2.RefreshLayout.java package myapplication.com.myapplication; import android.content.Context; ...
- 移动端下拉刷新上拉加载-mescroll.js插件
最近无意间看到有这么一个上拉刷新下拉加载的插件 -- mescroll.js,个人感觉挺好用的,官网地址是:http://www.mescroll.com 然后我就看了一下文档,简单的写了一个小dem ...
- 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载
title: 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 tags: -RecyclerView,下拉刷新,上拉加载更多 grammar_cjkRuby: true - ...
- ListView实现Item上下拖动交换位置 并且实现下拉刷新 上拉加载更多
ListView实现Item上下拖动交换位置 并且实现下拉刷新 上拉加载更多 package com.example.ListViewDragItem; import android.app.Ac ...
- [ionic开源项目教程] - 第7讲 实现下拉刷新上拉加载ion-refresher和ion-infinite-scroll
第7讲 实现下拉刷新上拉加载ion-refresher和ion-infinite-scroll 1.将tab1.html的代码改为如下: <ion-content> <ion-ref ...
- JS+CSS实现的下拉刷新/上拉加载插件
闲来无事,写了一个当下比较常见的下拉刷新/上拉加载的jquery插件,代码记录在这里,有兴趣将代码写成插件与npm包可以留言. 体验地址:http://owenliang.github.io/pull ...
- 基于SwiperJs的H5/移动端下拉刷新上拉加载更多的效果
最早时,公司的H5项目中曾用过点击一个"加载更多"的DOM元素来实现分页的功能,后来又用过网上有人写的一个上拉加载更多的插件,那个插件是页面将要滚动到底部时就自动请求数据并插入到页 ...
- ListView下拉刷新上拉加载更多实现
这篇文章将带大家了解listview下拉刷新和上拉加载更多的实现过程,先看效果(注:图片中listview中的阴影可以加上属性android:fadingEdge="none"去掉 ...
- RecyclerView下拉刷新上拉加载(三)—对Adapter的封装
RecyclerView下拉刷新上拉加载(一) http://blog.csdn.net/baiyuliang2013/article/details/51506036 RecyclerView下拉刷 ...
随机推荐
- Raw-OS源代码分析之idle任务
分析的内核版本号截止到2014-04-15,基于1.05正式版,blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现"???"字样.则是未深究理解部分. Raw-OS官方 ...
- iOS开发之--为PCH文件添加绝对路径
要想设置PCH的相对路径,首先我们需要去查看绝对路径. 相对路径 点击PCH文件,Xcode的右侧会显示PCH的属性.这里我们可以获取到PCH的绝对路径.从工程的路径开始,前面使用$(SRCROOT) ...
- C语言函数的概念
在<我们对函数进行了简单的解释,函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识. C语言本身带了很多库函数,并分门别类地放在了不同的头文件中,使用时只要引入对应的头文 ...
- Java实现简单的文件复制
public class FileCopy { public static void main(String[] args) { String path = "d:\\1.txt" ...
- Echarts 的悬浮框tooltip显示自定义格式化
最近做的项目用到echarts雷达图,但是由于地市过多,遇到悬浮框显示问题被遮住 如图: 可以看到上面从兴安开始数据就被遮住了 为了解决这个被遮住的悬浮框,达到tooltip自定义格式 完成后的效果如 ...
- poj_3250 单调栈
题目大意 N头牛排成一列,每头牛A都能看到它前面比它矮的牛i,若前面有一个比他高的牛X,则X之前的牛j,A都无法看到.给出N头牛的高度,求出这N头牛可以看到牛的数目的总数. 题目分析 画图之后,可以很 ...
- 1358 棋盘游戏[状压dp]
1358 棋盘游戏 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 这个游戏在一个有10*10 ...
- jenkins配置邮件报警
author:headsen chen date: 2018-05-15 13:49:21 在jerkins的主配置页面上: 注意:不用 安装什么报警邮件的插件.直接配置就可以了. 系统管理 --- ...
- CSS3制作旋转导航
慕课网学习CSS3时,遇到个习题,觉得有必要总结学习下:CSS3制作旋转导航 慕课网习题地址:http://www.imooc.com/code/1883 示例及源码地址:http://codepen ...
- 原生封装的ajax
原生封装的ajax的代码如下: //将数据转换成 a=1&b=2格式; function json2url(json){ var arr = []; //加随机数防止缓存; json.t = ...