Jestem nowy w Angular. Zacząłem Tour of Heroes, aby się tego nauczyć. Tak więc zostałem stworzony app.component
z two-way
wiązaniem.
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'
};
}
Zgodnie z tutorialem zaimportowałem FormsModule i dodałem go do tablicy deklaracji. Na tym etapie pojawił się błąd:
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 { }
Oto błąd:
Uncaught Error: nieoczekiwany moduł „FormsModule” zadeklarowany przez moduł „AppModule”. Dodaj adnotację @ Pipe / @ Directive / @ Component.
imports
a niedeclarations
Odpowiedzi:
FormsModule
należy dodaćimports array
niedeclarations array
.BrowserModule
,FormsModule
,HttpModule
Components
,Pipes
,Directives
patrz poniżej zmiana:
źródło
Dodaj
FormsModule
tablicę importu.to znaczy
Lub można to zrobić bez użycia
[(ngModel)]
za pomocązamiast
źródło
Usuń moduł FormsModule z deklaracji: [] i dodaj moduł FormsModule w imporcie: []
źródło
Rzeczy, do których możesz dodać
declarations: [] in modules
Wskazówka dla profesjonalistów : komunikat o błędzie wyjaśnia to -
Please add a @Pipe/@Directive/@Component annotation.
źródło