我有以下表格:
form = this.builder.group({
form2: this.builder.array([
this.builder.group({
name: new FormControl(),
surname: new FormControl(),
})
]),
});
在我的 oninit 中,我這樣做是為了用 setvalue 設定一個表單控制元件
this.form.controls.personNameField.setValue(this.person.name);
但這不起作用,可能是由于控制元件位于表單陣列中。但是如何訪問我的 formarray 控制元件?
uj5u.com熱心網友回復:
您可以FormArray像這樣添加帶有值的控制元件:
get form2Array(){
return this.form.controls.form2 as FormArrray;
}
// If form control exists at index
addPerson(index: number, person: any){
const personFormGroup = this.form2Array.at(index) as FormGroup
personFormGroup.setValue(person) //handle according to your code
}
// If form control does not exist at index
addPerson(index: number, person: any){
this.form2Array.at(index).setControl(index, this.builder.group({
name: this.builder.control({}),
surname: this.builder.control({}),
}))
const personFormGroup = this.form2Array.at(index) as FormGroup
personFormGroup.setValue(person) //handle according to your code
}
uj5u.com熱心網友回復:
您可以通過以下方式訪問表單控制元件:
ngOnInit() {
(this.form.get('form2') as FormArray).at(0).patchValue({ name: 'test' });
}
所以我們在父組中獲取表單陣列,然后獲取表單陣列中的第一個表單組(在索引 0 處)并修補name表單控制元件的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367289.html
標籤:javascript 有角的 打字稿
