5

我正在使用一个 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装饰器的提供者。怎么做?

4

2 回答 2

3

我遇到的问题是 valueString 是来自其他提供者的值

您可以使用以下方式将一个提供者的价值转发给另一个提供者useExisting

@NgModule({
    providers: [
        {provide: LOCALE_ID, useValue: 'en'},
        {provide: pluginToken, useExisting: LOCALE_ID},
    ],
})
export class MyModule {}

在上面的例子'en'中将被赋值,pluginToken因为它使用了现有的值LOCALE_ID

于 2018-08-29T14:58:34.363 回答
1

而不是, 通过使用whichuseValue注入对象实例useClass

创建并返回指定类的新实例


代码

// ...
{ provides: pluginToken, useClass: YourConfigurationObjectClass },
//...
于 2018-08-29T14:45:06.107 回答