angular - formGroup 需要一个 FormGroup 实例 : angular 4

标签 angular angular-forms formgroups

我在 Angular 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 expects a FormGroup instance , please pass one in

有任何输入吗?

最佳答案

如果您没有在组件的构造函数中创建表单,则第一次呈现 View 时 userForm 可能是未定义的,这就是您收到该错误的原因。 将您的表单标签封装成如下内容:

<div *ngIf='userForm'>
</div>

因此只有在设置模型时才会生成表单 View 。

关于angular - formGroup 需要一个 FormGroup 实例 : angular 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45190360/

相关文章:

angular - karma-jasmine-html-reporter@1.1.0 需要 jasmine@>=3 的对等体,但没有安装。

angular - 带有 Angular 6 的 PUT 请求的 CORS 问题

javascript - Angular 2/4+ 路由器动画,等待上一个路由动画完成

Angular - 动态添加/删除验证器

Angular 如何默认设置单选按钮,响应式(Reactive)表单

angular - react 形式改变 Angular 2

java - Spring Boot 应用程序与 Angular 应用程序的集成

Angular 表单 - 如何绑定(bind) formControlName 以在 formArrayName 中选择以使用对象

Angular 2获取动态FormGroup名称

Angular 7 - 提交表单时如何在表单的子组件中显示错误消息