포착되지 않은 오류 : 'AppModule'모듈에서 예기치 않은 모듈 'FormsModule'을 선언했습니다. @ Pipe / @ Directive / @ Component 주석을 추가하십시오.


97

저는 Angular를 처음 사용합니다. 나는 그것을 배우기 위해 Tour of Heroes를 시작했습니다. 그래서, 나는 창조하고 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 주석을 추가하십시오.


11
"모듈"입니다. 그것은에 속하는 imports하지declarations
닐 룬

답변:


261

FormsModuleimports arraynot에 추가해야합니다 declarations array.

  • imports arrayBrowserModule,, 같은 모듈을 가져 오기위한 것입니다 FormsModule.HttpModule
  • 선언의 배열이 당신입니다 Components, Pipes,Directives

아래 변경 사항을 참조하십시오.

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

1
답변과 정보에 감사드립니다. 도움이되었습니다.
Vlad Poltorin

9

FormsModuleImports Array에 추가합니다 .

@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">

4

선언 : [] 에서 FormsModule 을 제거하고 imports : []FormsModule 을 추가합니다 .

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


그래서, 당신의 대답은 다른 사람들이 이미 제공하지 않은 것을 추가 했습니까?
Noctis

0

추가 할 수있는 항목 declarations: [] in modules

  • 파이프
  • 지령
  • 구성 요소

프로 팁 : 오류 메시지가 설명합니다.Please add a @Pipe/@Directive/@Component annotation.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.