【发布时间】:2021-07-02 13:21:49
【问题描述】:
如果表单为空,我会尝试不在列表中显示表单。表单的值是字符串。我尝试使用 *ngIf 但它不起作用,我仍然可以在列表中看到空白位置。我该如何解决这个问题? (图中 ISRawMaterialInspection 和 ISRawMaterialRiskState 是空的。)
这是 HTML:
<input matInput class="mt-20" formControlName="IsOxidizable" *ngIf="form.get('IsOxidizable').value"/>
<input matInput class="mt-20" formControlName="ISRawMaterialInspection" *ngIf="!!form.get('ISRawMaterialInspection').value"/>
<input matInput class="mt-20" formControlName="ISRawMaterialRiskState" *ngIf="form.get('ISRawMaterialRiskState').value"/>
这里是 TS:
IsOxidizable: new FormControl({
value: this.data.IsOxidizable,
disabled: true,
}),
ISRawMaterialRiskState: new FormControl({
value: this.data.ISRawMaterialRiskState,
disabled: true,
}),
ISRawMaterialInspection: new FormControl({
value: this.data.ISRawMaterialInspection,
disabled: true
【问题讨论】:
-
您可以尝试检查控件而不是控件值吗? form.get('ISRawMaterialRiskState')
-
我也试过了,但是没用
-
你能分享带有
<form标签的完整html以及ts部分吗? -
查看这个 stackblitz 例如:stackblitz.com/edit/… 您的服务中的值是作为空字符串还是空字符串返回?如果为 null 你会很好,否则你的支票会在 !== ''
-
如果您可以粘贴完整的 html / ts,那将很有帮助。如果您总是从服务中获得价值,那么您的 ngIf 将始终为真,因此始终显示且无关紧要。
标签: javascript html css angular typescript