我试图通过索引将值设置为动态表单的控件
动态表单看起来像这个
profileForm = this.formBuilder.group({
firstName: ['', Validators.required],
lastName: [''],
address: this.formBuilder.group({
street: [''],
city: [''],
state: [''],
zip: [''],
}),
aliases: this.formBuilder.array([this.formBuilder.control('')]),
});
我创建了一个getter,以便轻松访问表单数组实例中的别名
get aliases(): FormArray {
return this.profileForm.get('aliases') as FormArray;
}
我尝试将值设置为第一个Form数组控件,如下所示
setInitialValue(): void {
this.aliases.at(0).setValue('Nancy');
}
以上操作无声地失败。
通过索引为Form数组中的控件设置值的正确方法是什么?
let formArr = <FormArray>this.profileForm.controls['aliases'];
formArr.controls[i].setValue('Nancy');
这是我的工作。
我设法发现了我的错误。在以下模板中
<div *ngFor="let alias of aliases.controls; index as i">
<label>
Alias
<input type="text" [formControlName]="i" />
</label>
</div>
对于<input type="text" [formControlName]="i" />
,我使用[formControl]="i"
使用[formControlName]="i"
解决问题