当我尝试在启动app.component之前加载环境配置时,首先我使用HttpClient http.get()从资产中加载environment.json:
service
init() {
const url = 'assets/config/environment.json';
return this.http.get<any>(url);
}
app.module
export class AppModule implements DoBootstrap {
// ...
ngDoBootstrap(appRef: ApplicationRef) {
this.commonService.init().subscribe(env => {
console.log(`env init`, env);
appRef.bootstrap(AppComponent);
// ...
});
它不起作用。
然后我改用fetch(),它可以工作.....但是我不知道为什么
service
init() {
return from(
fetch('assets/config/environment.json', {
method: 'GET'
})
);
}
app.module
export class AppModule implements DoBootstrap {
// ...
ngDoBootstrap(appRef: ApplicationRef) {
this.commonService.init().subscribe(env => {
console.log(`env init`, env);
appRef.bootstrap(AppComponent);
// ...
});
Angular CLI: 8.3.5
Node: 12.12.0
OS: win32 x64
Angular: 8.2.7
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.803.6
@angular-devkit/build-angular 0.803.6
@angular-devkit/build-optimizer 0.803.6
@angular-devkit/build-webpack 0.803.6
@angular-devkit/core 8.3.5
@angular-devkit/schematics 8.3.5
@angular/cdk 8.2.1
@angular/cli 8.3.5
@ngtools/webpack 8.3.6
@schematics/angular 8.3.5
@schematics/update 0.803.5
rxjs 6.5.3
typescript 3.5.3
webpack 4.39.2
答案 0 :(得分:0)
Fetch不需要导入任何库即可使用Angular来说明它为什么起作用。
对于Http,您必须将HttpClient
用户导入服务中,并且app.module
也要导入HttpClientModule
。
您可以提供更多信息吗?因此我们将为
提供帮助-在
service
和app.module
中完成了什么导入?
-控制台中有任何错误吗?
您也可以参考this