角度材质13-复选框选中的属性在设置为0时处于选中状态



从Angular 12升级到13后,我注意到当复选框的checked属性设置为0时,复选框就会被选中。

但是,当设置为false时,它是未选中的。

因此,0和false在版本12中表现相同,显示为未检查,但在版本13中不同。

在本例中,使用的字段是workOrderDtiConstraint.ESCALATED。当设置为0时,将选中该框;当设置为false时,将取消选中该框。

<ng-container matColumnDef="escalated">
<mat-header-cell *matHeaderCellDef>Escalated</mat-header-cell>
<mat-cell class="checkBox" *matCellDef="let workOrderDtiConstraint, let i = index">
<mat-checkbox color="primary"
[checked]="workOrderDtiConstraint.ESCALATED">
</mat-checkbox>
</mat-cell>
</ng-container>

有什么想法吗?

感谢

您可以使用这样的辅助函数:

getBoolean(value) {
switch (value) {
case true:
case "true":
case "True":
case 1:
case "1":
case "on":
case "yes":
return true;
default:
return false;
}
}

你的代码是这样的:

<ng-container matColumnDef="escalated">
<mat-header-cell *matHeaderCellDef>Escalated</mat-header-cell>
<mat-cell class="checkBox" *matCellDef="let workOrderDtiConstraint, let i = index">
<mat-checkbox color="primary"
[checked]="getBoolean(workOrderDtiConstraint.ESCALATED)">
</mat-checkbox>
</mat-cell>
</ng-container>

最新更新