Je suis coincé dans une situation ici. Je reçois une erreur comme celle-ci.
compiler.es5.js:1694 Uncaught Error: Unexpected value 'LoginComponent' declared by the module 'AppModule'. Please add a @Pipe/@Directive/@Component annotation.
at syntaxError (compiler.es5.js:1694)
at compiler.es5.js:15595
at Array.forEach (<anonymous>)
at CompileMetadataResolver.webpackJsonp.../../../compiler/@angular/compiler.es5.js.CompileMetadataResolver.getNgModuleMetadata (compiler.es5.js:15577)
at JitCompiler.webpackJsonp.../../../compiler/@angular/compiler.es5.js.JitCompiler._loadModules (compiler.es5.js:26965)
at JitCompiler.webpackJsonp.../../../compiler/@angular/compiler.es5.js.JitCompiler._compileModuleAndComponents (compiler.es5.js:26938)
at JitCompiler.webpackJsonp.../../../compiler/@angular/compiler.es5.js.JitCompiler.compileModuleAsync (compiler.es5.js:26867)
at PlatformRef_.webpackJsonp.../../../core/@angular/core.es5.js.PlatformRef_._bootstrapModuleWithZone (core.es5.js:4536)
at PlatformRef_.webpackJsonp.../../../core/@angular/core.es5.js.PlatformRef_.bootstrapModule (core.es5.js:4522)
at Object.../../../../../src/main.ts (main.ts:11)
Mon composant de connexion ressemble à ceci
import { Component } from '@angular/Core';
@Component({
selector:'login-component',
templateUrl:'./login.component.html'
})
export class LoginComponent{}
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common'
import { HttpModule } from '@angular/http';
import { ReactiveFormsModule} from '@angular/forms';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './main/app.component';
import {LoginComponent} from './login/login.component';
const appRoutes: Routes = [
{path:'', redirectTo:'login', pathMatch:'full'},
{ path: 'home', component: AppComponent },
{ path: 'login', component: LoginComponent }
];
@NgModule({
imports: [
BrowserModule,
RouterModule.forRoot(appRoutes),
],
declarations: [
AppComponent,
LoginComponent
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
J'ai eu cette erreur lorsque j'essaie d'importer LoginComponent dans une déclaration. Est-ce que j'ai râté quelque chose.
Vous avez une faute de frappe dans l'importation dans le fichier de votre LoginComponent
import { Component } from '@angular/Core';
c
minuscule, pas majuscule
import { Component } from '@angular/core';
Ce n'est pas une solution à l'exemple concret ci-dessus, mais ce message d'erreur peut être dû à de nombreuses raisons. Je l'ai eu quand j'ai accidentellement ajouté un module à la liste des déclarations de module et non à l'import.
Dans app.module.ts:
import { SharedModule } from './modules/shared/shared.module';
@NgModule({
declarations: [
// Should have been added here...
],
imports: [
SharedModule //wrong
],
J'ai eu un composant déclaré sans la propriété styleUrls, comme ceci:
@Component({
selector: 'app-server',
templateUrl: './server.component.html'
})
au lieu de:
@Component({
selector: 'app-server',
templateUrl: './server.component.html',
styleUrls: ['./server.component.css']
})
L'ajout de la propriété styleUrls a résolu le problème.
L'erreur susmentionnée se produit si une importation incorrecte est effectuée . Par exemple, des fichiers de service peuvent parfois être ajoutés à TestBed.configureTestingModule .
import {MatDialogModule} from '@angular/material/dialog'
pas de
import {MatDialogModule} from '@angular/material'