gpt4 book ai didi

angular - 在 Angular Material 表(mat-table)中混合静态和动态列

转载 作者:太空狗 更新时间:2023-10-29 17:07:03 26 4
gpt4 key购买 nike

你们知道是否可以在 ma​​t-table 中混合使用动态和静态列吗?我用它来显示用户数据,但我需要另一列来显示有关用户的不同操作按钮。简单地添加另一个 ng-container 是行不通的,因为 displayedColumns 中没有列定义,但是当我添加它时,我得到了“重复错误”。

<div class="example-container mat-elevation-z8">
<div class="example-header" layout="column" flex="100">
<md-form-field floatPlaceholder="never">
<input mdInput #filter placeholder="Filter users">
</md-form-field>
<span class="fill-space"></span>
<button align="right center" md-raised-button color="primary" (click)="clearFilter()">Clear</button>
</div>
<md-table *ngIf="users && displayedColumns" #table [dataSource]="dataSource">

<ng-container *ngFor="let set of displayedColumns" [mdColumnDef]="set">
<md-header-cell *mdHeaderCellDef> {{set}} </md-header-cell>
<md-cell *mdCellDef="let element"> {{getValue(set, element)}} </md-cell>
</ng-container>

<ng-container mdColumnDef="akcje">
<md-header-cell *mdHeaderCellDef> Akcje </md-header-cell>
<md-cell *mdCellDef="let element"> asdf </md-cell>
</ng-container> <------ this doesn't show another column, when added to displayedColums, produces error

<md-header-row *mdHeaderRowDef="displayedColumns"></md-header-row>
<md-row [ngClass]="{'active-user' : current && element.Id == current.Id}" *mdRowDef="let element; let row; columns: displayedColumns;" (click)="gotoUser(element)"></md-row>
</md-table>

最佳答案

当然,你只需要分开displayedColumns来自您的动态列数组。

<!-- Generic column definition -->
<ng-container *ngFor="let column of columns" [matColumnDef]="...">
...
</ng-container>

<!-- Special extra column -->
<ng-container matColumnDef="myExtraColumn">
...
</ng-container>

这基本上就是您所拥有的。您将遍历列列表以消除列定义,然后添加您想要的任何静态列。

然后你可以设置displayedColumns - 由 <md-header-row> 使用和 <md-row> - 连接到您的静态列的列列表。

/** Table columns */
columns = [
...,
...,
...,
];

/** List of columns to display in which order */
displayedColumns = this.columns.concat(['myExtraColumn']);

关于angular - 在 Angular Material 表(mat-table)中混合静态和动态列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46728048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com