написал после этого некоторый код (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);
});
Любая подсказка, что я делаю неправильно.