*ngIf 显示和隐藏 div 在应用数据绑定后不再工作
*ngIf to show and hide div no longer working after applying data binding
我有一个带有模板的表单,用于创建新表单或加载和编辑现有表单。我已将数据绑定应用于单选按钮字段集,以根据来自数据库的数据切换它们。在这样做时,用于切换其他 div 可见性的 *ngIf 出于某种原因不再起作用。
之前(可见性切换有效):
<div class="col-xs-12 col-sm-12">
<fieldset>
<input type="radio" formControlName="specificPilot" value="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes
<input type="radio" formControlName="specificPilot" value="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No
{{this.changeForm.get('generalQuestionsFG.specificPilot').value}}
</fieldset>
</div>
<div class="col-xs-12 col-sm-12">
<textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)"
*ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"></textarea>
</div>
之后(数据绑定有效,但可见性切换无效):
<div class="col-xs-12 col-sm-12">
<fieldset>
<input type="radio" formControlName="specificPilot" [value]="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes
<input type="radio" formControlName="specificPilot" [value]="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No
{{this.changeForm.get('generalQuestionsFG.specificPilot').value}}
</fieldset>
</div>
<div class="col-xs-12 col-sm-12">
<textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)"
*ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"> </textarea>
</div>
有人能解释为什么检查单选按钮控件值的 *ngIf 不再起作用吗?我添加了存根代码以检查值是否正确更改并且确实如此。
当您执行 <input value="1">
时,该值将为字符串 "1"
。
当您执行 <input [value]="1">
时,该值将为数字 1
。
您正在与严格相等进行比较,所以它中断了。
我有一个带有模板的表单,用于创建新表单或加载和编辑现有表单。我已将数据绑定应用于单选按钮字段集,以根据来自数据库的数据切换它们。在这样做时,用于切换其他 div 可见性的 *ngIf 出于某种原因不再起作用。
之前(可见性切换有效):
<div class="col-xs-12 col-sm-12">
<fieldset>
<input type="radio" formControlName="specificPilot" value="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes
<input type="radio" formControlName="specificPilot" value="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No
{{this.changeForm.get('generalQuestionsFG.specificPilot').value}}
</fieldset>
</div>
<div class="col-xs-12 col-sm-12">
<textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)"
*ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"></textarea>
</div>
之后(数据绑定有效,但可见性切换无效):
<div class="col-xs-12 col-sm-12">
<fieldset>
<input type="radio" formControlName="specificPilot" [value]="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes
<input type="radio" formControlName="specificPilot" [value]="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No
{{this.changeForm.get('generalQuestionsFG.specificPilot').value}}
</fieldset>
</div>
<div class="col-xs-12 col-sm-12">
<textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)"
*ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"> </textarea>
</div>
有人能解释为什么检查单选按钮控件值的 *ngIf 不再起作用吗?我添加了存根代码以检查值是否正确更改并且确实如此。
当您执行 <input value="1">
时,该值将为字符串 "1"
。
当您执行 <input [value]="1">
时,该值将为数字 1
。
您正在与严格相等进行比较,所以它中断了。