[英]Patching Angular Reactive Forms with FormArray of FormGroups
我正在建立一個與此類似的表格:
private _buildForm(): FormGroup {
const _form = new FormGroup({
title: new FormControl('', [Validators.required]),
jobs: new FormArray([
new FormGroup({
_id: new FormControl(''),
status: new FormControl('')
});
])
});
}
當我想使用patchValue()方法修補表單時(例如,當數據從服務器返回時),jobs數組僅修補了一個元素。 換句話說,如果作業數組包含多個作業,則僅修補第一個作業FormGroup。 我認為Angular足夠聰明,可以根據需要動態添加任意多個FormGroup。 作業FormGroups還可以如何打補丁?
不,您不能以這種方式修補formArray。 您可以執行什么操作,將formArray值作為參數傳遞,並以一張一張的形式插入。
setUpForm(job: Job) {
return new FormGroup({
title: new FormControl(job.title),
statuses: new FormArray(job.statuses.map((status) => this.createStatus(status)))
});
}
createStatus(statuses: any) {
return new FormGroup({
id: new FormControl(statuses.id || ''),
status: new FormControl(statuses.status || ''),
})
}
實時示例: Stackblitz
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.