我想展示一个加载器,同时在应用程序初始化期间完成一些逻辑。
我注意到如果我把它放在我的index.html中:
<body>
<app-root>
Loading...
</app-root>
</body>
我会看到Loading...
字符串。
但是如果我尝试在里面放一些HTML,就像这样:
<body>
<app-root>
<div class="pre-loader">
<img src="./assets/img/loaders/preloader.svg" />
</div>
</app-root>
</body>
初始化过程中删除app-root
内的所有标记。
我使用APP_INITIALIZER
中的app.module.ts
加载了一些配置,这就是为什么我希望在这些承诺完成后展示加载程序的原因。
以下是app.module.ts
内的代码:
providers: [
...
{ provide: APP_INITIALIZER, useFactory: loadConfigFactory, deps: [AppConfig, UserService], multi: true }
]
export function loadConfigFactory(config: AppConfig, userService: UserService) {
return () => config.load().then((serverURL) => userService.setCurrentUser(serverURL));
}
初始化正常。所有这些承诺都是在呈现任何其他内容之前完成的。但是在开发人员控制台中,如果我在其中放入一些HTML,那么我的<app-root>
是空的(这不是简单字符串的情况)