Ионная бесконечная прокрутка с данными JSON - PullRequest
0 голосов
/ 16 января 2019

У меня есть следующая страница и restpi, которая отлично работает. Но загружено много элементов, и я хочу загрузить несколько элементов, и каждый раз при прокрутке вниз после загрузки примерно десяти элементов больше. Я думал, что Infinitescroll - это хорошая вещь для использования, но я не знаю, как реализовать на следующих страницах кого-нибудь, кто может помочь мне в правильном направлении?

С этим прикрепленным кодом я вижу 5 пунктов, но все они пусты

API отдыха

import { Injectable } from '@angular/core';
import { Observable, of, throwError } from 'rxjs';
import { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';
import { forkJoin } from 'rxjs';

const apiUrl = "http://blabla.nl/";

@Injectable({
  providedIn: 'root'
})
export class RestApiService {

  constructor(private http: HttpClient) { }

  getData(): Observable<any> {
      let response = this.http.get(apiUrl+'nieuws');
      return forkJoin([response]);
  }

}

HTML-страница

<ion-header>
  <ion-toolbar>
    <ion-title>
      F1 nieuws
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content class="cards-bg">

  <ion-card *ngFor="let f of items">

    <img src="{{f.Afbeelding}}">
  <ion-card-content>
    <ion-card-title>{{f.title}}</ion-card-title>
    <div>
      {{f.body}}
   </div>
  </ion-card-content>

  </ion-card>

   <ion-infinite-scroll (ionInfinite)="doInfinite($event)">
   <ion-infinite-scroll-content></ion-infinite-scroll-content>
 </ion-infinite-scroll>


</ion-content>

Страница TS

import { Component } from '@angular/core';
import { LoadingController } from '@ionic/angular';
import { RestApiService } from '../rest-api.service';

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

    data:any;
    items = [];
    count: number = 0;

    constructor(public api: RestApiService, public loadingController: LoadingController) { 
    for (let f = 0; f < 5; f++) {
        this.items.push(this.items[this.count]);
        this.count++
    }
    }



ngOnInit() {
  this.getData();
}   
    async getData() {
  const loading = await this.loadingController.create({
    message: 'Loading'
  });
  await loading.present();
  this.api.getData()
    .subscribe(res => {
      console.log(res);
      this.data = res[0];
      loading.dismiss();
    }, err => {
      console.log(err);
      loading.dismiss();
    });
}
doInfinite(infiniteScroll) {
        setTimeout(() => {
            for (let f = 0; f < 5; f++) {
                this.items.push(this.items[this.count]);
                this.count++
            }

        infiniteScroll.complete();
    }, 500);
    }

}
...