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

核心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下拉刷 ...
 
随机推荐
- (转)c++ new/delete,new[]/delete[]原理解析
			
转自: 推荐:http://www.cnblogs.com/hazir/p/new_and_delete.html http://blog.csdn.net/crazyboyzzx/article/d ...
 - freemarker1 一些内建函数和用法
			
${" green mouse"?cap_first} --> Green mouse //字符串中的第一个单词的首字母大写 ${"ABCDF" ...
 - Administrator privileges required for OLE Remote Procedure Call debugging: this feature will not work..
			
VC++ 6.0单步调试(F10)出现警告框: 解决方法: 右键VC++ 6.0程序图标
 - Tanks案例笔记(一、场景搭建)
			
一.场景搭建 1.首先我们导入案例的资源,然后新建一个空场景: 2.资源中为我们准备的场景的预制,我们直接把LevelArt预制拖到Hierarchy面板: 3.移除场景中默认的光源: 4.确保物体的 ...
 - -pie can only be used when targeting iOS 4.2 or later
			
网上下载的demo,执行报错-pie can only be used when targeting iOS 4.2 or later 解决的方法:选择target==>改动developmen ...
 - iOS开发之-- 从当前隐藏导航界面push到下一个显示导航界面出现闪一下的问题
			
在修改项目代码的过程中,遇到一个问题,就是比如主页面的导航栏是隐藏的,但是需要push到别的页面,这个时候,会出现导航栏闪一下的情况, 下面是我写的一种方案,也就是在loadView这个生命周期函数中 ...
 - Android测试:从零开始3—— Instrumented单元测试1
			
Instrumented单元测试是指运行在物理机器或者模拟机上的测试,这样可以使用Android framework 的API和supporting API.这会在你需要使用设备信息,如app的Con ...
 - poj_1125 Floyd最短路
			
题目大意 N个股票经纪人,每个股票经纪人都会将得到的消息传播给另外一些股票经纪人,传播的速度均不固定,且从A传到B的速度和B传到A的速度不一定相等.给定一个消息,并不一定能够传遍所有的股票经纪人,因为 ...
 - 比较好用的Opera 翻译工具  ddict
			
http://ddict.me
 - java获取时间段内的所有日期
			
public static void main(String[] args) { SimpleDateFormat dateFormat = new SimpleDateForm ...