【发布时间】:2018-10-25 14:49:57
【问题描述】:
似乎 Angular 6 (4+?) 要求令牌 objects 是唯一的,以便 DI 工作。然而,我想使用一个动态令牌,由模板 html 代码提供,这将允许我的新指令按名称解析服务。
目前代码:
this.service = this.injector.get(new InjectionToken<IServiceRef>(tokenName));
失败:
Error: StaticInjectorError(AppModule)[InjectionToken the_token_name]:
当我用旧的(角度 4)Injector.get 函数替换我的代码时,它可以正常工作,因为注入器比较名称(并且我确实以该名称在视图中提供服务......)。然而,有了新的 DI,我无法实现我想要的。
那么,如何应对呢?
【问题讨论】:
-
但是这些服务也是硬编码的。那么为什么不对你的令牌进行硬编码呢?
-
恒定的硬编码字符串(这是我所拥有的)是不够的。必须使用单个令牌 OBJECT 才能使 DI 机制工作
标签: angular dependency-injection angular-di