我有一个带有排序的数据表,但是只有在matCellDef
和template变量中使用相同的名称时,排序才有效。例如:
<ng-container matColumnDef="SS_KEY">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Licenza </th>
<td mat-cell *matCellDef="let element" class="nome-col"> {{element.SS_KEY}} </td>
</ng-container>
但是,如果我使用一种方法,则会显示数据,但排序不起作用(仅对前两项进行排序):
<ng-container matColumnDef="cliente">
<th mat-header-cell *matHeaderCellDef> Cliente </th>
<td mat-cell *matCellDef="let element" class="nome-col"> {{getCustomerName(element.SS_SC_ID)}} </td>
</ng-container>
这是.ts文件:
ngOnInit() {
this.fetchClienti();
}
fetchClienti() {
this.clientiApi.getCustomers()
.subscribe(clienti => {
this.clienti = clienti;
}, (err) => {
console.log(err);
});
}
getCustomerName(id) {
let result = '';
this.clienti.forEach((cliente) => {
if (cliente['SC_ID'] === id) {
result = cliente['SC_NOME'];
}
});
return result;
}
使用async
管道不能解决问题
编辑:这是一个显示问题的Stackblitz:https://stackblitz.com/edit/ng-mat-sort-issue
PS:未定义的错误未记录在我的浏览器中,仅记录在stackblitz中……由于排序不起作用
感谢帮助