无法绑定到“formGroup”,因为它不是“form”的已知属性

2023-11-29

情况

我试图在我的 Angular 应用程序中制作一个非常简单的表单,但无论如何,它都不起作用。

角度版本

角度 2.0.0 RC5

错误

无法绑定到“formGroup”,因为它不是“form”的已知属性

Enter image description here

The code

The view

<form [formGroup]="newTaskForm" (submit)="createNewTask()">
   <div class="form-group">
      <label for="name">Name</label>
      <input type="text" name="name" required>
   </div>
   <button type="submit" class="btn btn-default">Submit</button>
</form>

控制器

import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators, FormBuilder }  from '@angular/forms';
import {FormsModule,ReactiveFormsModule} from '@angular/forms';
import { Task } from './task';

@Component({
    selector: 'task-add',
    templateUrl: 'app/task-add.component.html'

})
export class TaskAddComponent {

    newTaskForm: FormGroup;

    constructor(fb: FormBuilder)
    {
        this.newTaskForm = fb.group({
            name: ["", Validators.required]
        });
    }

    createNewTask()
    {
        console.log(this.newTaskForm.value)
    }
}

ng模块

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule }   from '@angular/forms';

import { routing }        from './app.routing';
import { AppComponent }  from './app.component';
import { TaskService } from './task.service'

@NgModule({
    imports: [
        BrowserModule,
        routing,
        FormsModule
    ],
    declarations: [ AppComponent ],
    providers: [
        TaskService
    ],
    bootstrap: [ AppComponent ]
})
export class AppModule { }

问题

为什么我会收到这个错误?我错过了什么吗?


RC6/RC7/最终版本修复

要修复此错误,您只需导入ReactiveFormsModule from @angular/forms在你的模块中。这是基本模块的示例ReactiveFormsModule import:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { AppComponent }  from './app.component';

@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        ReactiveFormsModule
    ],
    declarations: [
        AppComponent
    ],
    bootstrap: [AppComponent]
})

export class AppModule { }

进一步解释一下,formGroup是名为的指令的选择器FormGroupDirective这是一部分ReactiveFormsModule,因此需要导入它。它用于绑定现有的FormGroup到 DOM 元素。您可以阅读更多相关信息Angular 的官方文档页面.

RC5 FIX

你需要import { REACTIVE_FORM_DIRECTIVES } from '@angular/forms'在你的控制器中并将其添加到directives in @Component。这将解决问题。

修复该问题后,您可能会收到另一个错误,因为您没有添加formControlName="name"到您在表单中的输入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法绑定到“formGroup”,因为它不是“form”的已知属性 的相关文章

随机推荐