Angular 2依赖注入不起作用

时间:2016-12-30 11:10:57

标签: angular typescript dependency-injection

你好我一直试图解决这个问题大约2天,现在我看不出哪里出错了。我收到一些错误,我不知道如何调试。

没有AppService的提供者

我在一个傻瓜中重新创建了这个

我认为问题在于我没有注册AppService任何软件。

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

Click Here For plunker

3 个答案:

答案 0 :(得分:3)

Injectable()
export class AppService{

应该是

@Injectable()
export class AppService{
provoder:[AppService] 

应该是

providers:[AppService] 

Plunker example

如果您想为整个应用程序提供服务的单个实例,请将其添加到AppModule的提供程序中,如其他答案所示。如果你想要一个每AppComponent的实例(通常也是整个应用程序的一个实例),那么保持它的位置。模块级别提供的其他服务无法以这种方式注入AppService

答案 1 :(得分:1)

您必须将AppService添加到providers数组:

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

您可以在此处阅读有关Angular2依赖注入的更多信息:https://angular.io/docs/ts/latest/guide/dependency-injection.html

答案 2 :(得分:0)

添加

providers: [AppService],

@NgModule中,如下所示:

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

你是对的,你需要向你的模块声明你的服务才能将它用作DI。