如何在循环元素上使用 ngIf 语句
How to use ngIf statement on a looping element
我有一个 angular material table:
(HTML)
<table mat-table
[dataSource]="dataSource" multiTemplateDataRows
class="mat-elevation-z8">
<ng-container matColumnDef="{{column}}" *ngFor="let column of displayedColumns">
<ng-container *ngIf="!column=='slaStatus'">
<th mat-header-cell *matHeaderCellDef> {{column}} </th>
<td mat-cell *matCellDef="let element"> {{element[column]}} </td>
</ng-container>
<ng-container *ngIf="column=='slaStatus'" matColumnDef="{{column}}">
<th mat-header-cell *matHeaderCellDef mat-sort-header> SLA</th>
<td mat-cell *matCellDef="let element">
<mat-chip-list aria-label="Fish selection">
<mat-chip *ngIf="element.slaStatus=='On Time'" style="background-color: #B9F6CA; color: green">On Time</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Late'" style="background-color: #B9F6CA; color: yellow">Late</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Missing'" style="background-color: #ec9d9d; color: red">Missing</mat-chip>
</mat-chip-list>
</td>
</ng-container>
</ng-container>
正在抛出错误
<ng-container *ngIf="!column=='slaStatus'">
error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap
基本上我想看看该列是否等于 'slaStatus',如果是,我想将其显示为具有自己颜色的 angular material 筹码。如何以检查列是否等于 'slaStatus'?
的方式编写 ngIf 条件
(打字稿)
displayedColumns: string[] = [
'id',
'tradingPartnerTradingPartner',
'fileFormatFileFormat',
'slaStatus',
];
<table mat-table
[dataSource]="dataSource" multiTemplateDataRows
class="mat-elevation-z8">
<ng-container matColumnDef="{{column}}" *ngFor="let column of displayedColumns">
<ng-container *ngIf="column!=='slaStatus'">
<th mat-header-cell *matHeaderCellDef> {{column}} </th>
<td mat-cell *matCellDef="let element"> {{element[column]}} </td>
</ng-container>
<ng-container *ngIf="column=='slaStatus'" matColumnDef="{{column}}">
<th mat-header-cell *matHeaderCellDef mat-sort-header> SLA</th>
<td mat-cell *matCellDef="let element">
<mat-chip-list aria-label="Fish selection">
<mat-chip *ngIf="element.slaStatus=='On Time'" style="background-color: #B9F6CA; color: green">On Time</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Late'" style="background-color: #B9F6CA; color: yellow">Late</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Missing'" style="background-color: #ec9d9d; color: red">Missing</mat-chip>
</mat-chip-list>
</td>
</ng-container>
</ng-container>
这是一个核心离子类型错误。 *ngIf="column!=='slaStatus'"
会好的。
我有一个 angular material table:
(HTML)
<table mat-table
[dataSource]="dataSource" multiTemplateDataRows
class="mat-elevation-z8">
<ng-container matColumnDef="{{column}}" *ngFor="let column of displayedColumns">
<ng-container *ngIf="!column=='slaStatus'">
<th mat-header-cell *matHeaderCellDef> {{column}} </th>
<td mat-cell *matCellDef="let element"> {{element[column]}} </td>
</ng-container>
<ng-container *ngIf="column=='slaStatus'" matColumnDef="{{column}}">
<th mat-header-cell *matHeaderCellDef mat-sort-header> SLA</th>
<td mat-cell *matCellDef="let element">
<mat-chip-list aria-label="Fish selection">
<mat-chip *ngIf="element.slaStatus=='On Time'" style="background-color: #B9F6CA; color: green">On Time</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Late'" style="background-color: #B9F6CA; color: yellow">Late</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Missing'" style="background-color: #ec9d9d; color: red">Missing</mat-chip>
</mat-chip-list>
</td>
</ng-container>
</ng-container>
正在抛出错误
<ng-container *ngIf="!column=='slaStatus'">
error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap
基本上我想看看该列是否等于 'slaStatus',如果是,我想将其显示为具有自己颜色的 angular material 筹码。如何以检查列是否等于 'slaStatus'?
的方式编写 ngIf 条件(打字稿)
displayedColumns: string[] = [
'id',
'tradingPartnerTradingPartner',
'fileFormatFileFormat',
'slaStatus',
];
<table mat-table
[dataSource]="dataSource" multiTemplateDataRows
class="mat-elevation-z8">
<ng-container matColumnDef="{{column}}" *ngFor="let column of displayedColumns">
<ng-container *ngIf="column!=='slaStatus'">
<th mat-header-cell *matHeaderCellDef> {{column}} </th>
<td mat-cell *matCellDef="let element"> {{element[column]}} </td>
</ng-container>
<ng-container *ngIf="column=='slaStatus'" matColumnDef="{{column}}">
<th mat-header-cell *matHeaderCellDef mat-sort-header> SLA</th>
<td mat-cell *matCellDef="let element">
<mat-chip-list aria-label="Fish selection">
<mat-chip *ngIf="element.slaStatus=='On Time'" style="background-color: #B9F6CA; color: green">On Time</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Late'" style="background-color: #B9F6CA; color: yellow">Late</mat-chip>
<mat-chip *ngIf="element.slaStatus=='Missing'" style="background-color: #ec9d9d; color: red">Missing</mat-chip>
</mat-chip-list>
</td>
</ng-container>
</ng-container>
这是一个核心离子类型错误。 *ngIf="column!=='slaStatus'"
会好的。