遵循此(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);
});
任何提示我在做什么错