页面加载时Angular不会第一次读取系统变量

时间:2019-10-18 18:52:32

标签: angular typescript webpack

遵循此(https://www.bennettnotes.com/post/angular-read-system-environment-variables/)之后编写一些代码。我在系统变量中添加了API_URL

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

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

假设我有一个主页(http://my-dev-url/home)和配置页面(http://my-dev-url/config)。

当我打开Chrome浏览器并输入首页网址时,它(environment.API_URL)返回未定义。 ->现在,我单击“配置”超级链接,它将从系统环境中选择正确的API_URL。 ->如果我单击“主页”链接,则可以使用正确的API_URL。

如果我打开chrome浏览器并第一次输入配置页网址,则它(environment.API_URL)返回未定义。 ->现在,我单击“主页”超级链接,它将从系统环境中选择正确的API_URL。 ->现在,如果我单击“配置”页面链接,它将使用正确的API_URL。

代码:(除了上面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;

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

任何提示我在做什么错

0 个答案:

没有答案