FormGroup 需要一个 FormGroup 实例

我在 Plunkr 上有一个 Angular 2 RC4基本表单示例,它似乎抛出了以下错误(在 ChromeDEV 控制台中)

这是普鲁克

Https://plnkr.co/edit/gtpdxw?p=preview

错误:

browser_adapter.ts:82 EXCEPTION: Error: Uncaught (in promise): EXCEPTION: Error in ./App class App - inline template:1:7
ORIGINAL EXCEPTION: formGroup expects a FormGroup instance. Please pass one in.
Example: <form [formGroup]="myFormGroup">


ORIGINAL STACKTRACE:
Error: formGroup expects a FormGroup instance. Please pass one in.
Example: <form [formGroup]="myFormGroup">


at new BaseException (https://npmcdn.com/@angular/forms@0.2.0/src/facade/exceptions.js:27:23)
at FormGroupDirective._checkFormPresent (https://npmcdn.com/@angular/forms@0.2.0/src/directives/reactive_directives/form_group_directive.js:110:19)
at FormGroupDirective.ngOnChanges (https://npmcdn.com/@angular/forms@0.2.0/src/directives/reactive_directives/form_group_directive.js:39:14)
at DebugAppView._View_App0.detectChangesInter
226667 次浏览

您的代码中有一些问题

  • <form>标签外的 <div [formGroup]="form">
  • 但是包含 FormGroup的属性的名称是 loginForm,因此它应该是 <form [formGroup]="loginForm">
  • 传递不存在的属性 dob的值。您需要的是传递字符串 dob,如 [formControlName]="'dob'"或更简单的 formControlName="dob"

笨蛋的例子

我使用的是反应形式,遇到了类似的问题。帮助我的是确保我在课堂上建立了一个相应的 FormGroup。 就像这样:

myFormGroup: FormGroup = this.builder.group({
dob: ['', Validators.required]
});

我在指定 来自 GroupName而不是 FormArrayName时出现了这个错误。

请确保正确指定它是窗体数组还是窗体组。

<div formGroupName="formInfo"/>

<div formArrayName="formInfo"/>

我正面临这个问题,并通过在 form 属性中放入一个检查来解决。未初始化 FormGroup 时可能发生此问题。

<form [formGroup]="loginForm" *ngIf="loginForm">
OR
<form [formGroup]="loginForm" *ngIf="this.loginForm">

在表单初始化之前,这将不会呈现表单。

我有一个相同的错误,并解决它后,移动初始化 formBuilderngOnInit到构造函数。

我也有同样的错误,我解决了从中移除异步等待模式的问题:
原始代码

async ngOnInit()
{
this.id = await this.route.snapshot.paramMap.get('id');

工作守则

ngOnInit()
{
this.id = this.route.snapshot.paramMap.get('id');

我想可能与上面的@johannesMatevosyan 答案有关。 我真的不知道为什么,但为我工作。

在我的情况下,错误 This. formGroup = = this. fb (... ...

即等于运算符而不是初始化