Этот ответ суммирует ключевые моменты о том, как заставить mat-paginator
работать без mat-table
.Ниже приведены подробные изменения, которые вам или кому-либо еще нужно внести, чтобы использовать mat-paginator
с другими элементами / компонентами.
Вам необходимо добавить mat-paginator
внизу вашего шаблона, например:
<mat-paginator [pageSizeOptions]="[5, 10, 25, 100]"></mat-paginator>
Затем получите доступ к нему в своем компоненте с помощью ViewChild
:
@ViewChild(MatPaginator) paginator: MatPaginator;
Свяжите его с вашим источником данных в ngOnInit
:
this.dataSource.paginator = this.paginator;
И перепишите, как высвяжите свой источник данных:
obs: Observable<any>;
// Card is whatever type you use for your datasource, DATA is your data
dataSource: MatTableDataSource<Card> = new MatTableDataSource<Card>(DATA);
ngOnInit() {
this.obs = this.dataSource.connect();
}
А затем используйте источник данных в своем шаблоне следующим образом:
<mat-card *ngFor="let card of obs | async">
<!-- display your data here -->
</mat-card>
Можно найти рабочий стек для mat-card
с mat-paginator
здесь .