typescript - Angular 2 beroendeinjektion fungerar inte
Hej, jag har försökt lista ut detta i ungefär 2 dagar nu och jag kan inte se var jag gör fel. Jag får några felmeddelanden som jag inte är säker på hur jag ska felsöka.
ingen leverantör för AppService
Jag har återskapat detta i en plunker
Jag tror att problemet är att jag inte registrerar AppService någonstans.
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
Klicka här för plunker
Svar #1
Injectable()
export class AppService{
borde vara
@Injectable()
export class AppService{
provoder:[AppService]
borde vara
providers:[AppService]
Plunker-exempel
Om du vill ha en enda instans av din tjänst för hela din applikation, lägg till den i providers för AppModule som andra svar föreslår. Om du vill ha en instans per AppComponent (vilket vanligtvis också är en enda för hela din applikation) så behåll den där den är. Andra tjänster som tillhandahålls på modulnivå kommer dock inte kunna injicera AppService på detta sätt.
Svar #2
Du måste lägga till AppService i providers-arrayen:
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ],
providers: [AppService]
})
export class AppModule {}
Du kan läsa mer om Angular2 Dependency Injection här: https://angular.io/docs/ts/latest/guide/dependency-injection.html
