Следующее имеет место только в том случае, если используемый API доставляет 10 записей в одном запросе. В противном случае вы можете просто передать количество записей и смещение в API, чтобы получить желаемый результат.
Использовать обработчик событий change
для тега select
как
<select (change)="fetchRecords()" [(ngModel)]="selectedOption" name="gender">
<option *ngFor="let option of selectOptions" [value]="option">
{{option}}
</option>
</select>
Используйте forkjoin
из rxjs
, чтобы получить результаты двух вызовов API для записей 1-20.
public selectOptions = [
"5",
"10",
"20"
];
fetchRecords() {
console.log(this.selectedOption);
if(this.selectedOption == "5") {
this.http.get(requestUrl1).subscribe(data=> {
// fetch 1-10 records, but put 1-5 in the array to show
});
}
if(this.selectedOption == "10") {
this.http.get(requestUrl1).subscribe(data=> {
// fetch 1-10 records, put all 10 records in array to show
});
}
if(this.selectedOption == "20") {
let response1 = this.http.get(requestUrl1); // 1-10 offset
let response2 = this.http.get(requestUrl2); // 11-20 offset
forkJoin([response1, response2, response3]).subscribe(responseList => {
this.responseData1 = responseList[0];
this.responseData2 = responseList[1];
// concate all the 20 records and put in the array to show
});
}
}