Мне нужно использовать таблицу матов с динамическими c столбцами, но я получаю эту ошибку:
> ERROR TypeError: name.replace is not a function
> at MatColumnDef.set name [as name] (table.js:175)
> at updateProp (core.js:32189)
> at checkAndUpdateDirectiveInline (core.js:31867)
> at checkAndUpdateNodeInline (core.js:44367)
> at checkAndUpdateNode (core.js:44306)
> at debugCheckAndUpdateNode (core.js:45328)
> at debugCheckDirectivesFn (core.js:45271)
> at Object.eval [as updateDirectives] (TableComponent.html:3)
> at Object.debugUpdateDirectives [as updateDirectives] (core.js:45259)
> at checkAndUpdateView (core.js:44271)
В моем TS я объявил:
tableConfigurations = {
dataSource: [],
columns: [{
name: 'first'
},
{
name: 'second'
},
{
name: 'third'
},
{
name: 'fourth'
},
{
name: 'fifth'
}]
}
и в html у меня есть:
<table mat-table [dataSource]="tableConfigurations.dataSource" class="mat-elevation-z8">
<ng-container [matColumnDef]="column" *ngFor="let column of tableConfigurations.columns">
<ng-container>
<th mat-header-cell *matHeaderCellDef> {{column.name}} </th>
<td mat-cell *matCellDef="let element"> {{element[column]}} </td>
</ng-container>
</ng-container>
<tr mat-header-row *matHeaderRowDef="tableConfigurations.columns"></tr>
<tr mat-row *matRowDef="let row; columns: tableConfigurations.columns;"></tr>
</table>
Это стек с текущим кодом, который у меня есть. Как вы можете видеть в консоли, там та же ошибка. Я не понимаю, чего мне не хватает.