路由器插座的角度2延迟渲染

Sim*_*mon 2 javascript typescript angular

我正在开发一个具有多个组件的Angular 2应用程序,这些组件依赖于通过http服务从服务器加载的一些数据(它是关于用户及其角色的数据).

如果尚未加载此数据,我的大多数路径组件都会在其ngOnInit()方法中抛出错误.数据被加载并存储在注入所有组件的服务中.

有没有办法延迟在我的根组件中呈现当前路由,直到http调用结束?

否则我将不得不在所有路由组件的ngOnInit中实现某种检查和重试机制,这将是非常尴尬的.

我已经尝试隐藏路由器插座元素,直到调用完成,但这会导致错误说"无法找到主插座加载xxx"

Ost*_*tap 5

创建路由器模块时,可以选择延迟路由器初始导航:

RouterModule.forRoot([
    // routes here
], {
    initialNavigation: false // the propery to delay navigation
}),
Run Code Online (Sandbox Code Playgroud)

稍后可以通过Angular Router触发初始导航,如下所示:

this.router.initialNavigation();
Run Code Online (Sandbox Code Playgroud)