Angular 8 - транзитивно внедряет токен инъекции в сервис, определенный в библиотеке, используемый в угловом приложении - PullRequest
0 голосов
/ 03 июля 2019

Я создал угловую библиотеку, скажем, library1, которая определяет и предоставляет сервис APIService. APIService имеет аргумент конструктора (URL: string), который вводится с токеном Injection, определенным как

const URL_TOKEN = new InjectionToken<string>('API_BASE_URL');

Я использую это library1 в еще одной библиотеке, скажем library2, т.е. я внедряю APIService в компоненте, называемом LoginComponent.

Теперь у меня есть полноценное угловое приложение, и я использую LoginComponent из library2, и я хочу provide значение URL из приложения.

Интересно, есть ли способ достичь этого? Я также не уверен, как правильно выставить URL_TOKEN из library1 вплоть до углового приложения.

Любая помощь приветствуется! Спасибо.

Обновление

Когда я пытаюсь внедрить API_BASE_URL как,

providers: [ {provide: new InjectionToken<string>('API_BASE_URL'), useValue: 'http://endpoint'} ]

Я получаю исключение в браузере: ERROR NullInjectorError: StaticInjectorError(AppModule)[InjectionToken API_BASE_URL]:

1 Ответ

0 голосов
/ 04 июля 2019

Я полностью экспортировал URL_TOKEN. После прохождения множества ресурсов (вопросы переполнения стека, сообщения на github, угловые документы и т. Д.), Кажется, это правильный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...