我有一张带有客户信息的垫子表。我想按列值对行进行排序。没有错误,但排序不起作用。
表标签有matSort
:
<mat-table [dataSource]="dataSource" matSort>
每个列定义具有mat-sort-header
:
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef mat-sort-header> Name </mat-header-cell>
<mat-cell *matCellDef="let customer"> {{customer.name}} </mat-cell>
</ng-container>
在我有的组件类中
...
@ViewChild(MatSort) sort: MatSort;
...
ngOnInit() {
this.dataSource = new MatTableDataSource(this.data as any);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}
所以一切都非常像文档中的说明
如果您使用的
MatTableDataSource
是表的数据源,请将MatSort
指令提供给数据源,它将自动监听排序更改并更改表呈现的数据顺序。
但是样式和排序功能都没有应用于表格。
这个问题不相关,因为即使我在课堂上硬编码的数据也存在问题。
我没有看到我错过了什么。问题的根源是在逃避我。您可以查看我的完整代码并在 Stackblitz 上运行示例