Angular2:无法将服务注入其他服务

时间:2016-06-17 20:55:16

标签: javascript dependency-injection angular

我正在构建一个Angular 2应用程序,我使用了很多服务。我可以在他们之间注射,但我有一个我无法注射。

  

无法解析“语言”的所有参数(设置,TranslateService,配置,未定义)。确保所有参数都使用Inject进行修饰或具有有效的类型注释,并且“Language”使用Injectable进行修饰。

AppStorage服务不希望被注入Language服务(其他服务可以注入Language服务。)我也尝试将AppStorage注入其他服务(不起作用)。

问题是:AppStorage提供商有什么问题?

Direct link to AppStorage provider file(因为它有点长)

2 个答案:

答案 0 :(得分:1)

我在这里回答我自己的问题。谢谢大家的暗示。问题是循环依赖注入。我尝试将AppStorage注入LanguageAppStorage注入注入Parse的{​​{1}} Language。我刚从Language删除了Parse注入一切开始工作。

答案 1 :(得分:0)

如果您没有装饰服务或提供,则会出现此错误 。 确保在提供服务的分层树结构的顶部添加了一行: provide(AppStorage, {useClass : AppStorage})。 这将生成一个AppStorage实例,并为分层树中的每个组件提供所有组件,指令和服务。 有关详细信息,请查看以下链接:https://angular.io/docs/ts/latest/guide/hierarchical-dependency-injection.html