如何将新列异步添加到mat-table?

时间:2018-03-20 04:35:38

标签: angular angular-material

我已经可以使用数组定义列,但是我想隐藏一个列,但是在服务运行之后,我想要显示它。我尝试了以下但表格没有更新:

columnsToShow.push("someColumn")

我的表中有定义:

<mat-table>
    <ng-container matColumnDef="someColumn">
        <mat-header-cell *matHeaderCellDef>...</mat-header-cell>
        <mat-cell *matCellDef="let item">...</mat-cell>
    </ng-container>
</mat-table>

但该列永远不会出现。

1 个答案:

答案 0 :(得分:1)

使用mat-header-row更新标题:

<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>

在Component类中根据需要更新displayedColumns

  displayedColumns = ['position', 'name', 'weight', 'symbol'];

Code example

来自official documentation

  

通过更改提供给行的列列表,您可以轻松实现   重新订购并动态包含/排除列。