2017-06-04 71 views
3

我有一組我設置爲無功形式數組形式反應時更新:在我的HTMLngFor不推新數據

typesForms: FormGroup[] = []; 

其中我遍歷:

<form *ngFor="let type of typesForms; let i = index" [formGroup]="typesForms[i]" class="row"> 

但是,當我推新窗體時,HTML不會更新。

this.typesForms.push(this.formBuilder.group({ 
    type: { value: data['type'], disabled: true } 
})); 

我註銷了結果數據,它顯示新的表單對象,但沒有在前端。我認爲這與反應形式有關,但我不確定是否會把其他事情搞砸。

+0

您的ngFor迭代類型,而不是typeForms。因此,將一個元素添加到typesForms不會改變任何內容。 –

+0

糟糕,這只是一個錯字。我正在測試一些東西,並不小心複製了我的測試代碼。解決問題。 – RhoVisions

回答

1

您是否試過<form *ngFor="let type of typesForm" [formGroup]="type" class="row">


更新:

如果你有,你可以利用多種形式角的內置FormArray數據結構。它可以簡化對錶單組的操作 - 允許您輕鬆跟蹤更改並驗證鏈接的FormGroupFormControl的。

Punkr example

注:感謝何東西ReactiveFormsModule下的結構你可以撰寫FormArray S,FormGroup S和FormControl S作爲你想要的:

  • 你可以有一個FormArray作爲場a的FormGroup
  • FormArray可以包含FormArray s,FormGroup s和FormControl s
+0

我沒有,因爲我需要與表單進行交互的索引,除非有另一種方法來做到這一點,我不知道。我會嘗試看看是否有幫助,但我需要查看如何與單個表單進行交互。 – RhoVisions

+0

我在這個[plunkr](https://plnkr.co/edit/GPRvGZrLQYWdJ9zVouQy)中做了一個例子,它展示瞭如何用[Form Array](https://angular.io/)實例化和控制多個表單組文檔/ TS /最新/ API /表格/索引/ FormArray-class.html) – embarq