Вам необходимо подключить paginator к маршрутизатору Angular.
Например, допустим, вы структурировали свой маршрут следующим образом:
http://my/url/to/table/component?page=2
В этом случае вы можете получить индекс страницы2 от URL к таблице следующим образом:
Класс компонента:
class MyComponent {
pageIndex = this.activatedRoute.queryParams.pipe(
map(params => params['page'])
);
constructor(activatedRoute: ActivatedRoute) {}
}
Шаблон:
<mat-paginator [pageIndex]="pageIndex | async"></mat-paginator>
До сих пор URL будет управлять таблицей.Теперь вам также необходимо обновить URL-адрес, когда пользователь перемещается по таблице с помощью paginator:
Шаблон:
<mat-paginator [pageIndex]="pageIndex | async" (page)="pageChange($event)"></mat-paginator>
Класс компонента:
class MyComponent {
pageIndex = this.activatedRoute.queryParams.pipe(
map(params => params['page'])
)
constructor(activatedRoute: ActivatedRoute, router: Router) {}
pageChange(e: PageEvent): void {
this.router.navigate( /* ... */ );
}
}
Теперь, когдаURL обновляется, когда пользователь перемещается по таблице, что позволяет маршрутизатору затем управлять таблицей, когда пользователь возвращается к ранее посещенному URL.