2017-05-24 43 views
0

我的服務調用以這種格式返回數據:分頁 - 頁從服務

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

當我做這樣的判斷,我在「項目」陣列到實體類型的數據映射。

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); 
    } 

我正在添加分頁以顯示每頁中的30條記錄。如何獲得並返回「totalCount」,而無需另外撥打另一個電話?我正在嘗試顯示「顯示共xx頁的第x頁」。

要做到這一點,最好的方法是什麼?

此外,我想通過以下格式的URL參數,但它不適合我。我究竟做錯了什麼?

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

回答

1

您可以在服務端變量和訪問它象下面這樣:

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); 
} 

組件側:

this.service.totalCount 
+0

這工作!謝謝。 – Jay