Как внедрить зависимость в поставщика с данным токеном инъекции? - PullRequest
0 голосов
/ 29 августа 2018

Я использую плагин 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 поставщика декоратора. Как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

У меня проблема в том, что valueString является значением от другого поставщика

Вы можете переслать значение одного провайдера другому, используя useExisting

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

В приведенном выше примере 'en' будет присвоено pluginToken, поскольку оно использует существующее значение LOCALE_ID

0 голосов
/ 29 августа 2018

Вместо useValue внедрить экземпляр объекта, используя useClass, который

создает и возвращает новый экземпляр указанного класса


Код

// ...
{ provides: pluginToken, useClass: YourConfigurationObjectClass },
//...
...