javascript - 在ionic2中我想先通过http请求一部分,然后剩下的数据用 ion-infinite-scroll去请求?
本文介绍了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屋!
查看全文