分页 - 页从服务

问题描述:

我的服务调用以这种格式返回数据:分页 - 页从服务

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

您可以在服务端变量和访问它象下面这样:

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