gpt4 book ai didi

angular - 无法绑定(bind)到 'formGroup',因为它不是 'form' 的已知属性

转载 作者:太空狗 更新时间:2023-10-29 16:43:59 30 4
gpt4 key购买 nike

情况

我正在尝试在我的 Angular 应用程序中创建一个应该非常简单的表单,但无论如何,它都行不通。

Angular 版本

Angular 2.0.0 RC5

错误

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

Enter image description here

代码

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>

Controller

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

问题

为什么会出现该错误?我错过了什么吗?

最佳答案

RC6/RC7/最终版本修复

要修复此错误,您只需要从模块中的 @angular/forms 导入 ReactiveFormsModule。下面是带有 ReactiveFormsModule 导入的基本模块的示例:

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 绑定(bind)到 DOM 元素。您可以在 Angular's official docs page 上阅读更多相关信息.

RC5 修复

您需要从 Controller 中的“@angular/forms”导入 { REACTIVE_FORM_DIRECTIVES},并将其添加到 @Component 中的directives。这将解决问题。

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

关于angular - 无法绑定(bind)到 'formGroup',因为它不是 'form' 的已知属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39152071/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com