分页 - 来自服务的页数

时间:2017-05-24 16:02:50

标签: angular url pagination paging

我的服务电话是以这种格式返回数据:

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条记录。如何在不另行通话的情况下获取并返回“totalCount”?我正在尝试显示“显示总xx页面的页面x”。

这样做的最佳方法是什么?

另外,我想以下面的格式传递URL参数,但它对我不起作用。我做错了什么?

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

1 个答案:

答案 0 :(得分: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