我有一个材料表,其中需要根据单元格的内容使用特定的CSS类。
我使用以下CSS类
.status-code{
flex: 0 0 10% !important;
width: 10% !important;
}
.status-code-succsess{
flex: 0 0 10% !important;
width: 10% !important;
background: rgb(196,214,160);
color: rgb(80,99,42);
}
.status-code-failed{
flex: 0 0 10% !important;
width: 10% !important;
background: rgb(229,185,181);
color: rgb(97,38,33);
}
.status-code-empty{
flex: 0 0 10% !important;
width: 10% !important;
background: rgb(216,216,216);
}
这是html
<ng-container matColumnDef="Warehouse">
<mat-header-cell class="status-code" *matHeaderCellDef> Warehouse </mat-header-cell>
<mat-cell class="{{row.warehouse}} == 'Success' ? status-code-success : ({{row.warehouse}} == 'Failed' ? status-code-failed : status-code-empty)" *matCellDef="let row"> {{row.warehouse}} </mat-cell>
</ng-container>
<ng-container matColumnDef="DPI">
<mat-header-cell class="status-code" *matHeaderCellDef> DPI </mat-header-cell>
<mat-cell class="{{row.dpi}} == 'Success' ? status-code-success : ({{row.dpi}} == 'Failed' ? status-code-failed : status-code-empty)" *matCellDef="let row"> {{row.dpi}} </mat-cell>
</ng-container>
但是,“仓库”单元格中只有一行数据带有“成功”字样,但这给了我粉红色背景的风格
请帮助,有什么问题吗?
答案 0 :(得分:1)
尝试使用[ngClass]
。
在使用ngClass
时,您可能必须进行以下更改:
*。删除每个变量的插值{}
*。在class names
中包括所有single quotes
。
<ng-container matColumnDef="Warehouse">
<mat-header-cell class="status-code" *matHeaderCellDef> Warehouse </mat-header-cell>
<mat-cell [ngClass]="row.warehouse == 'Success' ? 'status-code-success' : (row.warehouse == 'Failed' ? 'status-code-failed' : 'status-code-empty')"
*matCellDef="let row"> {{row.warehouse}} </mat-cell>
</ng-container>
<ng-container matColumnDef="DPI">
<mat-header-cell class="status-code" *matHeaderCellDef> DPI </mat-header-cell>
<mat-cell [ngClass]="row.dpi == 'Success' ? 'status-code-success' : (row.dpi == 'Failed' ? 'status-code-failed' : 'status-code-empty')"
*matCellDef="let row"> {{row.dpi}} </mat-cell>
</ng-container>
另外,您在班级名称中有错字。
将.status-code-succsess
更改为.status-code-success
.status-code-success{
flex: 0 0 10% !important;
width: 10% !important;
background: rgb(196,214,160);
color: rgb(80,99,42);
}