首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角4动态形群

角4动态形群
EN

Stack Overflow用户
提问于 2017-11-09 18:13:20
回答 1查看 10.1K关注 0票数 8

我试图创建一个动态的表单组,我试图实现这一点

在“添加更多”上,单击“添加2动态字段”调用此函数:

代码语言:javascript
运行
复制
onAddSurgeries(){
    const control = new FormGroup({
        'surgery': new FormControl(null),
        'illness': new FormControl(null)
    });
      (<FormArray>this.form.get('surgeries')).push(control);
}

我的html就是这样的:

代码语言:javascript
运行
复制
<tr *ngFor="let ctrl of form.get('surgeries')['controls']; let i = index">
   <td><input type="text" class="form-control" [formControlName]="ctrl['controls'].surgery"></td>
   <td><input type="text" class="form-control" [formControlName]="ctrl['controls'].illness"></td>
</tr>

我知道我正在做的错误,formControlName不应该是"ctrl['controls'].surgery“--当我只有一个formcontrol而不是formgroup中的两个控件时,我应该将"i”作为formcontrolname,但是在这种情况下,我不知道应该在formControlName中输入什么,因为当我提交表单时,两个输入的值都是空的,因为它不是与表单组控件同步的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-09 18:20:51

你遗漏了(至少是问题中的) formArrayName的标记。此外,您还将表单组推送到您的your数组,在模板中,该数组需要在迭代中使用索引值进行标记。那么您的formControlName就是您指定的名称,即surgeryillness

代码语言:javascript
运行
复制
<table>
  <ng-container formArrayName="surgeries">
    <tr *ngFor="let ctrl of form.get('surgeries')['controls']; let i = index" 
      [formGroupName]="i">
      <td><input type="text" class="form-control" formControlName="surgery"></td>
      <td><input type="text" class="form-control" formControlName="illness"></td>
    </tr>
  </ng-container>
</table>

演示

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47208856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档