自定义标题标题提供重复的列定义名称

use*_*522 4 angular-material angular

我正在使用 Angular Material Table,我想更改表中的标题名称。

所以我为列创建了一个数组:

columnsToDisplay = [{"display": "name", "name": "Name"}, {"display": "something", "name": "Something here"}]
Run Code Online (Sandbox Code Playgroud)

然后我想我可以通过以下方式来解决这个问题:

<ng-container matColumnDef="{{column}}" *ngFor="let column of columnsToDisplay">
    <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.name}} </th>
    <td mat-cell *matCellDef="let element"> {{element[column]}} </td>
  </ng-container>
Run Code Online (Sandbox Code Playgroud)

但后来我得到这个错误:

Duplicate column definition name provided: "[object Object]".
Run Code Online (Sandbox Code Playgroud)

use*_*522 5

我找到了您可以执行此操作的解决方案,例如:

  columns = [{'column': 'name', 'title': 'Name'}, {'column': 'environment', 'title': 'Environment'}]
Run Code Online (Sandbox Code Playgroud)

在 html 中你需要改变这一点:

  <ng-container matColumnDef="{{column.column}}" *ngFor="let column of columns">
    <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.title}} </th>
    <td mat-cell *matCellDef="let element"> {{element[column.column]}} </td>
  </ng-container>
Run Code Online (Sandbox Code Playgroud)