Angular 解决服务完成后隐藏启动画面

Angular hide splash screen after resolve service done

在我的 Angular 12 应用程序中,我在应用程序根目录中使用启动画面作为 div。

<app-root>
   <div class="splash-screen">
        
    </div>
</app-root>

在根路径的路由器模块中,我在显示主要组件之前调用服务来解析数据。

RouterModule.forRoot([
            {
                path: '', component: AppMainComponent,
                resolve: {userInfo: userInfoResolver},

在我的主要组件中,我正在使用该数据

 ngOnInit() {
        this.route.data.subscribe(
            (data: Data) => {
                 this.userInfo=data['userInfo'];
            }
        );
    }

获取用户信息的服务 运行 几秒钟,此时启动画面已经消失,页面为白色,没有内容。

我的问题是: 在 ngOnInit 方法中获取 userInfo 后如何隐藏启动画面? 我在定义启动画面或在为 resolve 中的主要组件准备数据的方式上哪里出错了?

以这种方式使用启动画面来显示它完全可定制 -

在index.html-

<my-app></my-app>
<div id="splashScreen"></div>

在全局样式中添加一些样式(根据要求)-

#splashScreen{
    position: fixed;
    z-index: 1000;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: red; /* change as per need */
}

然后从应用中的任何位置移除启动画面 -

      constructor(private renderer: Renderer2) {}
    
      hideSplashScreen() {
        let splash = this.renderer.selectRootElement('#splashScreen');
        if (splash.style.display != 'none') splash.style.display = 'none';
      }

工作演示 here