我们的应用程序从一开始就需要一些服务。因此我们有一些提供程序,在启动时初始化它们。这是来自以下providers
部分app.module.ts
:
providers: [
{ provide: MAT_DATE_LOCALE, useValue: 'en-US' },
{
provide: APP_INITIALIZER,
useFactory: (service: MetaService) => () => service,
deps: [MetaService],
multi: true
}
],
这在 Angular 9-11 中运行良好。但是,在升级到 Angular 12 之后,甚至在一个空白的 Angular 12 项目中,这似乎破坏了应用程序。
虽然创建了服务。它使用以下正确记录:
useFactory: (service: MetaService) => () => { console.log(service); return service; },
但是,该页面返回为空白的白色页面。没有渲染任何组件,也没有发生路由。
CLI 上没有错误,浏览器控制台中也没有任何错误,只是一个空白页面。当我删除提供程序时,它似乎工作正常。
他们有没有改变,APP_INITIALIZER
在 Angular 12 中是如何工作的?如何修复或更新代码以使其再次工作?也许有更好的方法在启动时初始化服务?