未调用角度应用程序初始值设定项



我对Angular 11应用程序进行了几次更改,现在有一些问题需要修复。我不明白的是,为什么我定义的应用程序初始值设定项根本没有被调用。我所做的改变不应该影响这一点,所以我很感激你的建议。我完全按照官方文件写的那样做:

function initApp(http: HttpBackend, settings: AppSettings): () => Observable<any> {
console.log("INITIALIZING APP");
var appInfoCall = () => new HttpClient(http).get<IApplicationInfo>(settings.appInfoApi).pipe(
tap(data => {    
console.log("APP INITIALIZATION COMPLETE");
settings.appInfo = data;
}));
return appInfoCall; 
}

和我的app.module.ts:中的提供者数组

...,
{
provide: APP_INITIALIZER,
useFactory: initApp,
deps: [HttpBackend, HttpClient, AppSettings],
multi: true
}
],
bootstrap: [AppComponent]

从控制台输出中,我可以看到根本没有调用initApp函数。你知道为什么会这样吗?

由于initApp预计将注入两个提供程序:

function initApp(http: HttpBackend, settings: AppSettings): () => {
...
}

APP_INITIALIZER提供程序(dep(修改为:

{
provide: APP_INITIALIZER,
useFactory: initApp,
deps: [HttpBackend, AppSettings],
multi: true,
}

StackBlitz 上的示例演示


参考

APP_INITIALIZER(用法说明(

相关内容

最新更新