2017-03-28 3 views
20

In meiner Angular2 App bekomme ich den folgenden Fehler Fehler: (SystemJS) Unerwarteter Wert 'ReleasesService' von dem Modul 'AppModule' deklariert. Fügen Sie eine @ Pipe/@ Directive/@ Component Annotation hinzu.Angular2 Unerwarteter Wert im Service. Bitte Kommentar hinzufügen

Mein AppModule:

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { routing } from './app.routes'; 
import { HttpModule } from '@angular/http'; 
import { SearchFilter } from '../app/search-filter.pipe'; 
import { ReleasesService } from '../app/releases/releases.service'; 
import { AppComponent } from './app.component'; 
import { HomeComponent } from '../app/home/home.component'; 
import { ReleasesComponent } from '../app/releases/releases.component'; 
import { DistroComponent } from '../app/distro/distro.component'; 
import { ContactComponent } from '../app/contact/contact.component'; 

@NgModule({ 
    imports:  [ BrowserModule, HttpModule, routing ], 
    declarations: [ AppComponent, 
        SearchFilter, 
        HomeComponent, 
        ReleasesComponent, 
        ReleasesService, 
        DistroComponent, 
        ContactComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

Mein ReleasesService:

import { Injectable } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import { Observable } from 'rxjs/Observable'; 
import { IRelease } from './release'; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class ReleasesService { 
    getReleases() { 
    return IRelease; 
    } 
} 

Wie es zu beheben? Ich habe die Quickstarter (die Basis für meine App) neu installiert und den gleichen Fehler beim Versuch, den Dienst zu erstellen.

Antwort

27

declarations ist nur für deklarationspflichtige Klassen: Komponenten Richtlinien und Pipes

können Sie ReleasesService-providers Array

@NgModule({ 
    imports:  [ BrowserModule ], 
    declarations: [ AppComponent ], 
    providers: [ ReleasesService ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

Siehe auch

hinzufügen
+0

es funktioniert nicht für mich.Ich habe versucht, gab Anbieter entweder in einer eigenen Datei oder in app.mudule Datei ... können Sie mir dabei helfen .. ?? –

+0

@DeepakChawla Können Sie es irgendwo reproduzieren? – yurzui

+0

tatsächlich gab ich Service-Name in der Erklärung, weshalb es nicht funktionierte ... –

1

Ich hatte ein ähnliches Problem, während ein Projekt hatte angular2 als Abhängigkeit und eine Projektabhängigkeit (mit der fehlerhaften Komponente). Scheint, dass angular2-Metadaten an die direkte angular2-Abhängigkeit angehängt werden, sodass die Komponente in der Projektabhängigkeit nicht im angular2 des Projekts deklariert wurde.

Problemumgehung ist, dass Sie angular2 aus der Abhängigkeit entfernen (deklarieren es dort als devDependency) und nur eine angular2-Instanz verwenden.

Verwandte Themen