以角反应形式添加嵌套字段

时间:2019-02-16 08:49:00

标签: angular angular-reactive-forms

我正在使用 Angular 6 ,并且已经在 Django 中编写了API。

我有一个个人资料模型,该模型在用户模型下进行了序列化。

使用邮递员,我可以将记录保存到个人资料,例如

# JSON
{
    'name': 'John',
    'profile': {
       'about': 'About me string'
    }
}

# or form field
name = 'John'
profile.about = 'About me string'

现在,在Angular应用程序中,我试图将上述格式的数据发送到端点。为此,formGroup就像

this.aboutForm = this.fb.group({
  profile: this.fb.group({
    about: new FormControl('', [
        Validators.required
    ])
  })
});

当HTML表单像

<form [formGroup]="aboutForm" (submit)="submit()" #form="ngForm">
    <textarea formControlName="profile.about"></textarea>
</form>

但这给了错误

error service Error: "Cannot find control with name: 'profile.about'"

1 个答案:

答案 0 :(得分:1)

对于嵌套控件,应使用formGroupName而不是formControlName

将div中的textarea括在formGroupName=profile中,然后将formControlName=about用于texarea