Передача переменных среды в пользовательскую библиотеку с помощью forRoot () - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь передать переменные окружения в мою собственную библиотеку. И я передаю его через forRoot (). Для жестко закодированных значений я могу передать его, но для значений среды, когда я передаю его в библиотеку, он отображается как неопределенный.

const rootUrl = environment.rootURL;

@NgModule({
imports: [
// configs go in here
coachModule.forRoot(
  {
    apiURL: 'test.com',
    scoreData: {
      score: 708
    },
    rootURL: rootUrl
  }),
 ...

rootUrl определяется, когда я ставлю точку останова на @NgModule, однако, когда я ставлю точку останова в библиотеке, rootURL не определен.

Я использую Angular 5. Я попытался найти проблему, но не смог найти решения.

Это распространенная проблема и что может быть другим способом передачи этой переменной среды? Любая помощь приветствуется :)

ОБНОВЛЕНИЕ: Я выяснил, почему это не работает должным образом. Он создавался с --aot, поэтому при отладке я смог увидеть значение rootUrl, потому что проверял его во время выполнения, но передавал его в мою библиотеку во время компиляции (с неопределенным значением)

Я пытаюсь это возможное решение прямо сейчас. Если у кого-то есть другие потенциальные решения, я буду признателен

РЕШЕНИЕ: Мое решение состояло в том, чтобы передать переменные как функции, поскольку переменные среды были скомпилированы. Это было бы, чтобы выполнить их во время выполнения.

Я просто создал следующие функции и передал ссылку в библиотеку

export function getRootURL() {
   return environment.rootURL;
}
...