我使用的是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
是来自其他某个提供程序的值。我不知道如何将依赖项注入到@NgModule
装饰器的提供程序中。怎么做?
答案 0 :(得分:1)
使用useClass
代替useValue
注入对象实例,
创建并返回指定类的新实例
代码:
// ...
{ provides: pluginToken, useClass: YourConfigurationObjectClass },
//...
答案 1 :(得分:1)
我的问题是valueString是来自其他某个提供程序的值
您可以使用useExisting
@NgModule({
providers: [
{provide: LOCALE_ID, useValue: 'en'},
{provide: pluginToken, useExisting: LOCALE_ID},
],
})
export class MyModule {}
在上面的示例中,'en'
被分配给pluginToken
,因为它使用了LOCALE_ID
的现有值