效果演示

核心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()
})
}])

最新文章

  1. Libscore – 收集 JavaScript 库的使用数据
  2. ThinkPHP 3.2.3(三)架构之URL模式
  3. httpclient提示Cookie rejected: violates RFC 2109: domain must start with a dot
  4. 多用less命令,不会输入h查看对应的详细文档
  5. 知乎APP---案例分析
  6. R语言︱list用法、批量读取、写出数据时的用法
  7. vue根据ajax绑定数数。。
  8. 与TIME_WAIT相关的几个内核参数
  9. MySQL data sync to Oracle with OGG(Remote Delivery)
  10. cordic
  11. json模块和pickle模块(二十二)
  12. POJ 2247 Humble Numbers
  13. datax 数据同步迁移
  14. Java 执行jar文件出现版本错误信息
  15. javaScript 的 map() reduce() foreach() filter()
  16. 201621123008 《Java程序设计》第一周学习总结
  17. Problem F: 铺地砖
  18. maven 根据P参数值打包动态修改properties文件中值或一定properties
  19. [转]MySQL常用字符串函数
  20. Win10系统XWware虚拟机安装Linux系统(Ubuntu)最新版教程

热门文章

  1. Java 执行linux scp 远程获取文件和上传
  2. uva 610(tarjan的应用)
  3. MVC框架图
  4. kotlin 遇到的问题
  5. C语言while语句
  6. poj_1125 Floyd最短路
  7. GO函数总结(转)
  8. 帧动画和骨骼json、极速、二进制对比
  9. 解决SecureCRT连接linux终端中文显示乱码
  10. 【Python数据挖掘】回归模型与应用