【发布时间】:2018-07-19 16:06:58
【问题描述】:
我正在尝试将单选按钮组添加到 FormArray。问题是当我选择一个值时,它会更改 FormArray 的每个成员的值。我知道这与 formControlName 有关,但我不知道如何使 formControlName 动态。我看过this post,但它已经 4 岁了,有点模糊;即,我无法从中得出明确的答案。
这是我目前拥有的:
TS 组件
//inputs and variable initialization
ngOnInit() {
this.createSensorForm();
}
createSensorForm() {
this.sensorForm = this.fb.group({
...
definitions: this.fb.array([this.createDefinition()])
});
}
createDefinition(): FormGroup {
return this.fb.group({
numeric: [""],
});
}
addDefinition() {
this.definitions = this.sensorForm.get('definitions') as FormArray;
this.definitions.push(this.createDefinition());
}
HTML 组件
<form [formGroup]="sensorForm" (ngSubmit)="createSensor()">
...
<div formArrayName="definitions"
*ngFor="let definition of sensorForm.get('definitions').controls; let i = index;">
<div [formGroupName]="i">
...
<input type="radio" [value]="true"
formControlName="numeric" [(ngModel)]="numeric"> Yes
<input type="radio" [value]="false"
formControlName="numeric" [(ngModel)]="numeric"> No
</div>
</div>
<button class="btn btn-primary" type="button" (click)="addDefinition()">
<i class="fa fa-plus"></i> Add Definition
</button>
</form>
【问题讨论】:
标签: angular