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

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

情况:

请帮忙!我试图在我的Angular2应用程序中制作一个非常简单的表单,但无论它从不工作。

角度版本:

Angular 2.0.0 Rc5

错误:

Can't bind to 'formGroup' since it isn't a known property of 'form'

代码:

风景:

<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)
    }}

ngModule:

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 { }

问题:

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

我错过了什么吗?


qq_花开花谢_0
浏览 1062回答 3
3回答

慕少森

RC5 FIX你需要import { REACTIVE_FORM_DIRECTIVES } from '@angular/forms'在你的控制器,并把它添加到directives的@Component。这将解决问题。修复之后,您可能会收到另一个错误,因为您没有formControlName="name"在表单中添加输入。RC6 / RC7 /最终版本FIX要修复此错误,您只需ReactiveFormsModule从@angular/forms模块中导入即可。以下是ReactiveFormsModule导入基本模块的示例:import&nbsp;{&nbsp;NgModule&nbsp;}&nbsp;from&nbsp;'@angular/core';import&nbsp;{&nbsp;BrowserModule&nbsp;}&nbsp;from&nbsp;'@angular/platform-browser';import&nbsp;{&nbsp;FormsModule,&nbsp;ReactiveFormsModule&nbsp;}&nbsp;from&nbsp;'@angular/forms';import&nbsp;{&nbsp;AppComponent&nbsp;}&nbsp;&nbsp;from&nbsp;'./app.component';@NgModule({ &nbsp;&nbsp;&nbsp;&nbsp;imports:&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BrowserModule, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FormsModule, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReactiveFormsModule &nbsp;&nbsp;&nbsp;&nbsp;], &nbsp;&nbsp;&nbsp;&nbsp;declarations:&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AppComponent &nbsp;&nbsp;&nbsp;&nbsp;], &nbsp;&nbsp;&nbsp;&nbsp;bootstrap:&nbsp;[AppComponent]})export&nbsp;class&nbsp;AppModule&nbsp;{&nbsp;}为了进一步解释,formGroup指定的指令的选择器FormGroupDirective是其中的一部分ReactiveFormsModule,因此需要导入它。它用于将现有绑定FormGroup到DOM元素。您可以在Angular的官方文档页面上阅读更多相关信息。

素胚勾勒不出你

Angular 4与功能模块(例如,如果您使用共享模块)一起要求您也导出ReactiveFormsModule工作。import { NgModule }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from '@angular/core';import { CommonModule }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from '@angular/common';import { FormsModule, ReactiveFormsModule }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from '@angular/forms';@NgModule({&nbsp; imports:&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; CommonModule,&nbsp; &nbsp; ReactiveFormsModule&nbsp; ],&nbsp; declarations: [],&nbsp; exports: [&nbsp; &nbsp; CommonModule,&nbsp; &nbsp; FormsModule,&nbsp; &nbsp; ReactiveFormsModule&nbsp; ]})export class SharedModule { }&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS