Ionic4.x ion-infinite-scroll 上拉分頁加載更多


<ion-header>
  <ion-toolbar>
    <ion-title>
      Tab One
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content>
  
      <ion-list>
        <ion-item *ngFor="let item of list">
          <ion-label>{{item.title}}</ion-label>
        </ion-item>        
      </ion-list>

      

      <ion-infinite-scroll threshold="10%" (ionInfinite)="loadMore($event)">
        <ion-infinite-scroll-content loadingSpinner="crescent" loadingText="加載中...">
        </ion-infinite-scroll-content>
      </ion-infinite-scroll>

      <p *ngIf="!hasMore">---我是有底線的---</p>
      

</ion-content>
import { Component } from '@angular/core';


import { HttpserviceService } from '../services/httpservice.service';

@Component({
  selector: 'app-tab1',
  templateUrl: 'tab1.page.html',
  styleUrls: ['tab1.page.scss']
})
export class Tab1Page {

  public list:any[]=[];

  public page:any=1;

  public hasMore=true;

  constructor(public httpService:HttpserviceService){

  } 
  ngOnInit(): void {
    
      this.getData();
  }

  getData(){

      var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page='+this.page;
      this.httpService.get(api).then((response:any)=>{
          console.log(response)
          this.list=response.result;
          ++this.page;
      })

  }
  loadMore(e){
    var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page='+this.page;
      this.httpService.get(api).then((response:any)=>{
          console.log(response)
          this.list=this.list.concat(response.result);
          ++this.page;
          //判斷下一頁有沒有數據
          if(response.result.length<20){
            e.target.disabled=true;

            this.hasMore=false;
          }
          e.target.complete(); //請求完成數據以后告訴ion-infinite-scroll更新數據
      })
  }
}

 http服務:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
  providedIn: 'root'
})
export class HttpserviceService {

  constructor(public http:HttpClient) { }

  get(api){

    return new Promise((resolve,reject)=>{
        this.http.get(api).subscribe((response)=>{

          resolve(response);

        },(err)=>{
          reject(err);
          
        })
    })

  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM