从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>