替代类提供程序和依赖注入

时间:2017-05-26 18:54:20

标签: angular dependency-injection

我正在尝试将XRDService和SESSION_SERVICE_TOKEN注入我的CartService,但是,我收到此错误:

Can't resolve all parameters for CartService: (?, [object Object]).

在DI方面,普通服务和替代类提供商之间有什么区别? this解释了一点,但我仍然感到困惑。

我可以在较低模块中提供的服务中注入SESSION_SERVICE_TOKEN,而不是在同一模块中提供它们时。这是为什么?有没有解决方法?

app.module.ts:

providers: [
  { provide: SESSION_SERVICE_TOKEN, useClass: ClientSessionService },
  XRDService,
  CartService,
]

cart.service.ts:

constructor(@Inject(SESSION_SERVICE_TOKEN) sessionService: SessionService, 
  private xrdService: XRDService) {}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

原来是循环依赖问题。我正在将cartService注入ClientSessionService,同时还尝试将ClientSessionService注入cartService。我从ClientSessionService中删除了购物车依赖项,一切都很顺利。