问题描述
我对Angular非常陌生。我有一个组件,可以从数据源动态创建表格。我希望当与数据源的一部分相比的特定条件为真或假时,某些席子行变灰或其他(显示行但其中没有数据)。
希望你们能帮助我。
解决方法
让我为您展示一些来自material.angular.io的样品垫表
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<!--- Note that these columns can be defined in any order.
The actual rendered columns are set as a property on the row definition" -->
<!-- Position Column -->
<ng-container matColumnDef="position">
<th mat-header-cell *matHeaderCellDef> No. </th>
<td mat-cell *matCellDef="let element"> {{element.position}} </td>
</ng-container>
<!-- Name Column -->
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<td mat-cell *matCellDef="let element"> {{element.name}} </td>
</ng-container>
<!-- Weight Column -->
<ng-container matColumnDef="weight">
<th mat-header-cell *matHeaderCellDef> Weight </th>
<td mat-cell *matCellDef="let element"> {{element.weight}} </td>
</ng-container>
<!-- Symbol Column -->
<ng-container matColumnDef="symbol">
<th mat-header-cell *matHeaderCellDef> Symbol </th>
<td mat-cell *matCellDef="let element"> {{element.symbol}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
正如倒数第二行的代码所示,您已使用<tr>
元素定义了row
。
因此,如果要使整个行变灰,则必须向其中添加一些动态类:
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [class.disabled]="row.disabled"></tr>
如您所见,我使用传递到每一行的对象的disabled
属性。