Для моей таблицы у меня есть следующий 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()
не будет отображаться в моей консоли. Я не получаю ошибок и предупреждений.
Надеюсь, кто-то знает, что не так.
EDIT
Я воспроизвел его в стеке потока, если он внутри *ngIf
, он не работает.
Кажется, это ошибка, которую я опубликовал на github https://github.com/angular/components/issues/15966