2017-05-24 5 views
0

Mein Service-Aufruf wird die Daten in diesem Format zurückkehrt:Paginierung - Seite zählen von Service

items: [,...] 
page: 1 
pageSize: 30 
totalCount: 3445 

Wenn ich diesen Anruf, ich Abbilden der Daten in „Elemente“ Array in den Entitätstyp.

getItems(pageNumber?: number): Observable<Item[]> { 

     return this.http 
      .get(this.itemsUrl + '?page=' + pageNumber) 
      .map((res) => { 
       const body = res.json(); 

       return this.mapToItemList(body.items || {}); 
      }) 
      .catch(this.handleError); 
    } 

Ich füge Paginierung hinzu, um 30 Datensätze auf jeder Seite anzuzeigen. Wie bekomme und gebe ich den "totalCount" zurück, ohne einen weiteren Anruf zu tätigen? Ich versuche, "Seite x von insgesamt xx Seiten anzeigen" anzuzeigen.

Was ist der beste Weg, dies zu tun?

Auch ich möchte die URL-Parameter in dem folgenden Format übergeben, aber es funktioniert nicht für mich. Was mache ich falsch?

const params: URLSearchParams = new URLSearchParams(); 
     if (pageNumber) { 
      params.set('page', pageNumber.toString()); 
     } 

Antwort

1

Sie können variabel an Serviceseite und Zugang haben wie unten:

public totalCount:any;  

getItems(pageNumber?: number): Observable<Item[]> { 

    return this.http 
     .get(this.itemsUrl + '?page=' + pageNumber) 
     .map((res) => { 
      const body = res.json(); 
      this.totalCount = body.totalCount; 
      return this.mapToItemList(body.items || {}); 
     }) 
     .catch(this.handleError); 
} 

Bauteilseite:

this.service.totalCount 
+0

Das hat geklappt! Danke. – Jay

Verwandte Themen