我在角度4中创建了一个formGroup,其中用户和组织存储在对象中 . 现在我想使用这两个对象填充我的表单组 . 在我的ts中,我做了以下事情:
createForm(user: any) {
this.userForm = this.fb.group({
name: user.profileData.name,
email: user.profileData.email,
phone: user.profileData.mobileNumber,
orgForm: this.fb.group({
name: [ user.organisation.name , [Validators.required]]
})
});
}
在我看来,我正在做这样的事情:
<form [formGroup]="userForm" class="user-form" (ngSubmit)="onSubmit()" novalidate>
<div fxLayout="row">
<div fxLayout="column" fxFlex="50%">
<div class="form-group">
<md-input-container class="full-width">
<input mdInput placeholder="User Name" formControlName="name">
</md-input-container>
</div>
<div class="form-group">
<md-input-container class="full-width">
<input mdInput placeholder="User Email" formControlName="email">
</md-input-container>
</div>
<div class="form-group">
<md-input-container class="full-width">
<input mdInput placeholder="User Phone" formControlName="phone">
</md-input-container>
</div>
<div class="form-group">
<button md-raised-button type="submit" [disabled]="userForm.pristine">Save</button>
</div>
</div>
<div fxLayout="column" fxFlex="50%" formGroupName="orgForm">
<div class="form-group">
<md-input-container class="full-width">
<input mdInput placeholder="Organization Name" formControlName="name">
</md-input-container>
</div>
</div>
</div>
</form>
但我收到以下错误:
formGroup需要一个FormGroup实例,请传入一个
任何输入?
2 回答
如果您没有在组件的构造函数中创建表单,那么第一次呈现视图时userForm可能是未定义的,这就是您收到该错误的原因 . 将表单标记封装成以下内容:
因此,仅在设置模型时生成表单视图 .
只需复制下面的代码并将其粘贴在dyniamic-form.component.ts中