【发布时间】:2018-03-28 19:26:55
【问题描述】:
我正在使用 Angular 4、Bootstrap 4 和 ngbootstrap 开发应用程序。 html代码 -
<div class="container">
<form [formGroup]="myForm" novalidate (ngSubmit)="save(myForm.value)">
<div class="form-group">
<div class="row">
<legend class="col-form-legend col-sm-2">Required</legend>
<div class="btn-group col-sm-2" ngbRadioGroup name="isRequired" formControlName="isRequired">
<label ngbButtonLabel class="btn-primary">
<input ngbButton type="radio" name="radio" [value]="true">Yes
</label>
<label ngbButtonLabel class="btn-primary">
<input ngbButton type="radio" name="radio" [value]="false">No
</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-6">
<button type="submit" class="btn btn-info">
<i class="fa fa-floppy-o fa-lg"></i>
Save
</button>
</div>
</div>
</form>
</div>
控制器
private buildForm() {
this.myForm = this.formBuilder.group({
isRequired: [],
});
}
在控制器的 ngOnInit() 挂钩中,我调用 buildForm() 方法。然后我发出一个 Http 获取请求并获取 isRequired 字段的值。如果获取成功,我会调用以下方法来设置单选按钮的值。
private loadFormData() {
this.myForm.patchValue({
isRequired: this.variable.isRequired,
});
}
问题 - 让我们假设 isRequired = true 的值。这个值 正确获取并使用此值初始化无线电 在表单加载。但是,如果用户更改值(isRequired = false) 该字段仍保留以前的值 (isRequired = true)。
如果我使用以下代码,这可以正常工作 -
<div class="form-group">
<div class="row">
<legend class="col-form-legend col-sm-2">Required</legend>
<input type="radio" formControlName="isRequired" value="true"> Yes
<input type="radio" formControlName="isRequired" value="false"> No
</div>
</div>
我做错了什么?
【问题讨论】:
-
@ranakrunal9。我正在关注此链接上显示的反应形式单选按钮示例 --> ng-bootstrap.github.io/#/components/buttons/examples
标签: twitter-bootstrap angular bootstrap-4 ng-bootstrap angular-reactive-forms