我是Angular的新手。我开始了英雄之旅来学习它。
因此,我创建了app.component
two-way
绑定。
import { Component } from '@angular/core';
export class Hero {
id: number;
name: string;
}
@Component({
selector: 'app-root',
template: `
<h1>{{title}}</h1>
<h2>{{hero.name}} details!</h2>
<div><label>id: </label>{{hero.id}}</div>
<div><label>Name: </label>
<input [(ngModel)]="hero.name" placeholder="Name">
</div>
`,
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Tour of Heroes';
hero: Hero = {
id: 1,
name: 'Windstorm'
};
}
按照教程我导入了FormsModule并将其添加到声明数组中。此步骤出现错误:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { FormsModule } from '@angular/forms';
@NgModule({
declarations: [
AppComponent,
FormsModule
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这是错误:
未捕获错误:模块“AppModule”声明的意外模块“FormsModule”。请添加@ Pipe / @ Directive / @ Component注释。
答案 0 :(得分:158)
FormsModule
而不是imports array
添加 declarations array
。
BrowserModule
,FormsModule
,HttpModule
Components
,Pipes
,Directives
请参阅以下更改:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
答案 1 :(得分:6)
在Imports Array中添加FormsModule
。
即
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
或者这可以通过使用
而不使用[(ngModel)]
来完成
<input [value]='hero.name' (input)='hero.name=$event.target.value' placeholder="name">
而不是
<input [(ngModel)]="hero.name" placeholder="Name">
答案 2 :(得分:0)
从声明中删除 FormsModule 并添加 FormsModule 在进口中:[]
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
答案 3 :(得分:-1)
您可以添加到declarations: [] in modules
专业提示:错误消息对此进行了解释-Please add a @Pipe/@Directive/@Component annotation.