# Angular Material table dynamische Spalten



## Svensen (16. Sep 2021)

Hallo liebe Community.
Ich bewege mich seit kurzem in der Angular Welt und könnte Hilfe gebrauchen.
Und zwar möchte ich eine Tabelle anzeigen aber gewisse Spalten nur, wenn in einem Form Feld ein Wert gesetzt ist.
Ich probiere nun schon eine Weile rum mit mat-table aber komme irgendwie nicht auf die Lösung.

Hier mal mein table.component.ts


```
columns = [
    {
      columnDef: 'title',
      header: 'Titel',
      cell: (element: Movie) => `${element.title}`,
      hide: false,
    }

  displayedColumns = this.columns.map(c => c.columnDef);
  ];
```

und die table.component.html

```
<input matInput name="titleFormControl"  #titleFormControl ngModel placeholder="Titel">

<mat-table #table [dataSource]="movies" class="mat-elevation-z8">
      <ng-container *ngFor="let column of columns" [matColumnDef]="column.columnDef">
        <th mat-header-cell *matHeaderCellDef mat-sort-header [hidden]="titleFormControl.value < 0">
          {{column.header}}
        </th>
        <td mat-cell *matCellDef="let row" [hidden]="titleFormControl.value < 0">
          {{column.cell(row)}}
        </td>
      </ng-container>
      <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
      <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
    </mat-table>
```

hoffe das hilft vielleicht.
Bin gerade echt ratlos.
Mein Gedanke war entweder nen Event und dann das Array für die Columns anpassen und hide auf false zu setzen oder über ngModel irgendwas zu machen.
Keine Ahnung.
Würde mich über jeden Rat freuen.

Lieben Dank


----------

