【发布时间】:2020-09-06 18:28:58
【问题描述】:
我有一个 Angular Material 表,其中包含按预期填充的 Firebase 数据库中的数据,但是当我尝试按照文档添加分页器和排序时,它们都是可见的(我可以看到分页器 div 和选项以及动画排序点击标题)但都不起作用,即排序或更改查看的项目。
我该如何调查?
HTML sn-p:
<mat-table #table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef mat-sort-header> Name </mat-header-cell>
<mat-cell *matCellDef="let item">{{item.name}} </mat-cell>
</ng-container>
...
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>
<mat-paginator
#paginator
[pageSize]="10"
[pageSizeOptions]="[5, 10, 20]"
[showFirstLastButtons]="true"
>
</mat-paginator>
TS:
import { MatTableDataSource, MatSort, MatPaginator } from '@angular/material';
...
itemList: Item[];
displayedColumns = ['name', 'quantity', 'description', 'equippable', 'attunement', 'edit', 'delete'];
dataSource = new MatTableDataSource(this.itemList);
...
@ViewChild(MatSort) sort: MatSort;
@ViewChild(MatPaginator) paginator: MatPaginator;
...
ngOnInit() {
this.dataSource.sort = this.sort;
this.dataSource.paginator = this.paginator;
let data = this.itemService.getData();
data.snapshotChanges().subscribe(item => {
this.itemList = [];
item.forEach(element => {
let json = element.payload.toJSON();
json["$key"] = element.key;
this.itemList.push(json as Item);
});
this.dataSource = new MatTableDataSource(this.itemList);
});
}
【问题讨论】:
标签: angular firebase firebase-realtime-database angular-material angular5