角材料排序不正确

时间:2018-10-09 09:59:08

标签: javascript angular sorting asynchronous angular-material

我有一个带有排序的数据表,但是只有在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中……由于排序不起作用

感谢帮助

0 个答案:

没有答案
相关问题