[Paginator] When Updated length is "shorter" than the pageIndex (*pageSize), pageIndex should be updated and then a pageEvent to the pageIndex emited
- 主要语言
- TypeScript
- 星标
- 25k
- 派生
- 6.8k
- 平均合并
- 1 天 8 小时
- 30 天内合并 PR
- 91
描述
#### What is the expected behavior?
When I am on the last Page of a dataSet and then delete the elements that are currently showing (or filter elements "away"), and thereby change the length property, the paginator should update the pageIndex to the ACTUAL lastPage and then _emitPageEvent() there.
#### What is the current behavior?
When I am on the last Page of a table and then delete the element(s) that are currently showing, the paginator will simply show a empty table with a label like "91 - 100 of 90".
Also: I am using an Array as Datasource for my Table.
#### What are the steps to reproduce?
The example in the Documentations shows the behavior very well (but if necessary I can still provide the stackblitz with a table)
https://material.angular.io/components/paginator/examples
Steps
#1 Click 9x on the "nextPage" Button until you are on the last Page (91-100 of 100)
#2 Click on the input "List length" and enter "90"
-> The paginator shows "91-100 of 90" INSTEAD should show "81-90 of 90" and a PageEvent fired to the last Page
#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
I had the problem with Material+Material 6, but apparently it shows as well on 7
Browser: Chrome
OS: Win 10
#### Is there anything else we should know?
Inside the Paginator Component: The setter function for the length property could simply test `if (Math.floor(value, this.pageSize) < this.pageIndex) { /* set pageIndex and emitPageEvent accordingly */}`
贡献指南
调研方向
从 Angular Material 文档中的 paginator 示例开始,复现将最后一页的长度从 100 改为 90 的情况,然后检查 Paginator 组件的 length setter。完成的标准是页面从 91–100 of 100 变为 81–90 of 90,并且针对新的最后一页发出一个 PageEvent。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- angular, typescript
- 领域
- frontend
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100