Angular 角度不';当页面加载时,不要第一次读取系统变量

Angular 角度不';当页面加载时,不要第一次读取系统变量,angular,typescript,webpack,Angular,Typescript,Webpack,在遵循此()之后编写了一些代码。我在系统变量中添加了API_URL 不确定如果我创建stackblitz是否会有帮助。我试着尽可能多地把代码放在下面 它读取系统变量,但不在第一页读取。 (注意:在我的本地版本中,即使是第一次,它也会返回正确的url,我在DEV服务器中看到这个问题) 假设我有一个主页()和配置页() 当我打开chrome浏览器并输入主页url时,它(environment.API\u url)返回未定义的。->现在我点击配置超链接,它从系统环境中选择正确的API\U URL。->

在遵循此()之后编写了一些代码。我在系统变量中添加了API_URL

不确定如果我创建stackblitz是否会有帮助。我试着尽可能多地把代码放在下面

它读取系统变量,但不在第一页读取。 (注意:在我的本地版本中,即使是第一次,它也会返回正确的url,我在DEV服务器中看到这个问题)

假设我有一个主页()和配置页()

当我打开chrome浏览器并输入主页url时,它(
environment.API\u url
)返回未定义的。->现在我点击配置超链接,它从系统环境中选择正确的API\U URL。->如果我点击主页链接,它将与正确的API_URL一起工作

如果我第一次打开chrome浏览器并输入配置页面url,它(environment.API_url)返回未定义。->现在我点击主页超链接,它从系统环境中选择正确的API\U URL。->现在,如果我点击配置页面链接,它将与正确的API\uURL一起工作

代码:(除了上面url中已经描述的内容) 环境科技

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;
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);
      });
config.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;
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);
      });

知道我做错了什么吗。

什么时候从组件调用服务?(最好也添加组件代码)@SimonEchle-添加了HomeComponent代码。ConfigComponent与您的angular.json中的调用类似,通常有一个
“fileReplacements”:[{“replace”:“src/environments/environment/environment.ts”,“with”:“src/environments/environment.prod.ts”}],
检查environment.prod.ts是否有json对象何时从组件调用服务?(最好也添加组件代码)@SimonEchle-添加了HomeComponent代码。ConfigComponent类似于您的angular.json通常有一个
“fileReplacements”:[{“replace”:“src/environments/environment.ts”,“with”:“src/environments/environment.prod.ts”}],
检查environment.prod.ts是否有您的json对象