簡體   English   中英

使用FormGroups的FormArray修補Angular反應形式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM