繁体   English   中英

如何使用给定的注入令牌向服务提供者注入依赖项?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM