Angular не читает системные переменные в первый раз при загрузке страницы - PullRequest
2 голосов
/ 18 октября 2019

написал после этого некоторый код (https://www.bennettnotes.com/post/angular-read-system-environment-variables/). Я добавил API_URL в свою системную переменную

Не уверен, поможет ли это, если я создам стекблиц. Я попытался поместить столько, сколько приведено ниже, какЯ могу.

Он читает системную переменную, но не на самой первой странице. (Примечание: на моем локальном компьютере он возвращает правильный URL даже в первый раз, когда я вижу эту проблему на сервере DEV)

Допустим, у меня есть домашняя страница (http://my -dev-url / home ) и страница конфигурации (http://my -dev-url / config ).

Когда я открываю браузер Chrome и ввожу URL-адрес домашней страницы, он (environment.API_URL) возвращает неопределенное значение. -> Теперь я нажимаю гиперссылку Config, он выбирает правильный API_URL из системной среды -> Если я нажимаю на домашней страницессылка, она работает с правильным API_URL.

Если я открою браузер chrome и впервые введу URL страницы конфигурации, он (environment.API_URL) возвращает неопределенное значение. -> Теперь я нажимаю гиперссылку на главную страницу и выбираетисправьте API_URL из системного окружения. -> Теперь, если я нажму на ссылку страницы конфигурации, она будет работать сh правильный API_URL.

Код: (кроме того, что уже описано в приведенном выше URL) environment.ts

export const environment = {
  production: false,
  dev: false,
  qa: false,
  local: true,
  API_URL: $ENV.API_URL
};

home.component.ts:

ngOnInit() {
        this.homeService
            .getTv(this.localIp)
            .subscribe((result) => {
                console.log(result);
            });
    }
}

home.service.ts:

import { environment } from '../../environments/environment';
            this.http.get(environment.API_URL + '/api/tv/' + this.localIp ).toPromise().then(response => {
                const data = response.json() as Tv;
                this.tv=data;

config.service.ts:

import { environment } from '../../environments/environment';

      this.http.get(environment.API_URL + '/api/' + 'config/1').toPromise().then(response => {
          const data = response.json();
      }).catch(error => {
          alert(error);
      });

Любая подсказка, что я делаю неправильно.

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