我试图将 aMatPaginator
与MatTable
谁的 dataSource 输入属性相关联,该属性只是在模板中声明,而不是从组件本身中订阅。例如:
<table mat-table [dataSource]="allData$ | async" class="mat-elevation-z8">
通常,我会将分页器与组件中的数据源相关联,如下所示:
export class AppComponent {
@ViewChild(MatPaginator) set paginator(paginator: MatPaginator) {
if (paginator) {
this.dataSource.paginator = paginator;
}
}
dataSource;
displayedColumns = ['first_name', 'last_name', 'email', 'ip_address'];
constructor(private appService: AppService) {}
ngOnInit() {
this.appService.getData().subscribe((data) => {
this.dataSource = new MatTableDataSource(data);
this.dataSource.paginator = this.paginator;
});
}
}
不幸的是,这不适用于前一种方法,因为我们实际上并没有直接创建新的数据源,也无法关联数据源,并且通过async
管道自动以声明方式订阅。
这是一个显示问题的 StackBlitz:https ://stackblitz.com/edit/angular-ivy-ebddd6?file=src/app/app.component.html 。