javascript - 在ionic2中我想先通过http请求一部分,然后剩下的数据用 ion-infinite-scroll去请求?

查看:127
本文介绍了javascript - 在ionic2中我想先通过http请求一部分,然后剩下的数据用 ion-infinite-scroll去请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

doInfinite(infiniteScroll) {

console.log('Begin async operation');
setTimeout(() => {
  for (let i = 0; i < 5; i++) {
    if(this.items.length < 20){
      this.items.push( this.items.length ); 
      infiniteScroll.complete();         
    }else{
      infiniteScroll.enable(false);
    }
  }
  console.log('Async operation has ended');
}, 500);

}

ionViewDidLoad(){

this.http.get('assets/data/nearby.json')
.subscribe(data=>{
  console.log(data)
  console.log(data.json())
  this.lists = data.json()
},error=>{
  console.log(error)
});

}
}

解决方案

通过控制loadMore判断是否有加载更多 参考代码示例

<ion-infinite-scroll (ionInfinite)="doInfinite($event)" [threshold]="'10%'" [enabled]="loadMore">
        <ion-infinite-scroll-content [loadingSpinner]="'bubbles'">
        </ion-infinite-scroll-content>
    </ion-infinite-scroll>

doInfinite(infiniteScroll) {
    let id = this.lists[this.lists.length - 1]["id"];
    let params = {
      'Id': id,
      'getPast': 'true'
    };

    this._demoService.list(params)
      .subscribe((result) => {
        if (result.data.length > 0) {
          this.lists = this.lists.concat(result.data);  
        }
        infiniteScroll.complete();
        this.loadMore = result.data.length == 10;  //一次请求多少条
      }, (err) => {
        infiniteScroll.complete();
      });
  }

这篇关于javascript - 在ionic2中我想先通过http请求一部分,然后剩下的数据用 ion-infinite-scroll去请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆