对于我的表,我有以下html:
<div *ngIf="test">
<div *ngIf="sortedData" [ngStyle]="{'height': elmtHeight, 'overflow': 'auto'}">
<table mat-table [dataSource]="dataSource" matSort>
<ng-container [matColumnDef]="column" *ngFor="let column of displayedColumns;">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{column}} </th>
<td mat-cell *matCellDef="let element">
<div *ngFor="let data of element[column]">{{data.data}}</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
</table>
</div>
</div>
以及组件中的以下内容:
this.dataSource = new MatTableDataSource(me.sortedData);
this.dataSource.sort = this.sort;
this.dataSource.sortingDataAccessor = ((item: any, header: string) => {
return item[header][0].data;
});
this.test = true;
我什至创建了一个堆叠闪电战: https://stackblitz.com/edit/angular-27gm6u,并且可以正常使用。
但是由于某种原因,排序不会被触发,console.log()
将不会显示在我的控制台中。我没有错误也没有警告。
我希望有人知道出什么问题了。
编辑
如果它在*ngIf
内部,则在stackoverflow中对其进行了重现,但无法正常工作。
似乎是我在github https://github.com/angular/components/issues/15966