[英]How to inject a dependency into a provider with given injection token?
我正在使用Angular插件,需要通过使用插件导出的InjectionToken
提供配置对象来配置。
import { pluginToken } from 'plugin';
@NgModule({
providers: {
// Configure the plugin
//
// The configuration value string needs to be taken from some other
// provider (available for dependency injection).
{ provides: pluginToken, useValue: valueString },
},
})
class MyModule {
...
}
我valueString
的问题是valueString
是来自其他一些提供者的值。 我不知道如何将依赖注入@NgModule
装饰器的提供者。 怎么做?
而不是useValue
,使用useClass
注入对象实例
创建并返回指定类的新实例
代码 :
// ...
{ provides: pluginToken, useClass: YourConfigurationObjectClass },
//...
我遇到的问题是valueString是来自其他一些提供者的值
您可以使用useExisting
将一个提供者的值转发给另一个提供者
@NgModule({
providers: [
{provide: LOCALE_ID, useValue: 'en'},
{provide: pluginToken, useExisting: LOCALE_ID},
],
})
export class MyModule {}
在上面的示例中, 'en'
将分配给pluginToken
因为它使用LOCALE_ID
的现有值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.