我发出一个http请求以获取要在下面显示的一些数据:
我有一个下拉菜单选择显示entriesPerPage
,向左和向右光标在分页中切换page
。这行得通,但是当我切换页面时,它总是显示
无法读取未定义的属性“页面”
除了我根本无法显示totalEntries
或totalPages
之外,它们似乎也不适用于数据绑定。
component.ts
public getArticles(): void {
this.articleService.getAllArticlesWithPagination(this.paginationResponse.pagination)
.subscribe((data) => {
this.dataSource.data = data.data;
this.paginationResponse.pagination.page = data.pagination.page;
this.paginationResponse.pagination.entriesPerPage = data.pagination.entriesPerPage;
this.paginationResponse.pagination.totalEntries = data.pagination.totalEntries;
this.paginationResponse.pagination.totalPages = data.pagination.totalPages;
});
console.log(this.paginationResponse); // added for this question after comments
}
pagination.response
export class PaginationResponse<T> {
public data: T[];
public pagination: Pagination;
constructor() {
this.pagination = new Pagination();
}
}
pagination.ts
export class Pagination {
public static readonly DEFAULT_SIZE = 5;
public static readonly FIRST_PAGE = 0;
public static readonly DEFAULT_TOTAL = 3;
public static readonly DEFAULT_ENTRIES = 10;
public page: number;
public entriesPerPage: number;
public totalPages: number;
public totalEntries: number;
constructor() {
this.page = Pagination.FIRST_PAGE;
this.entriesPerPage = Pagination.DEFAULT_SIZE;
this.totalEntries = Pagination.DEFAULT_ENTRIES;
this.totalPages = Pagination.DEFAULT_TOTAL;
}
}
console.log(this.paginationResponse)
编辑:所以看来paginationResponse.pagination
从未真正填充过data
的数据。有趣的是,除了data
之外,data[]
仅显示了分页的字段(totalPages,totalEntries,page,entriesPerPage),但是data.pagination
仅显示了在分页的构造函数中定义的字段.ts(上面的代码片段)。我不明白为什么它不添加分页。
解决方案:
我期望PaginationResponse
中的返回值包装我的Pagination
对象。我从中删除了pagination
,而是在其中放入了4个字段。因此,尽管简短,但答案似乎正确。
答案 0 :(得分:0)
从我看到的data.pagination
未定义。