分页 - 来自服务的页数

Pagination - Page count from service

我的服务调用是return以这种格式发送数据:

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

当我进行此调用时,我将 "items" 数组中的数据映射到实体类型。

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 条记录。如何在不进行另一个单独调用的情况下获取 return 和 "totalCount"?我正在尝试显示 "Showing page x of total xx pages".

执行此操作的最佳方法是什么?

此外,我想按以下格式传递 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