Angular2 RC1 - 数据加载后加载路由(路由器 - 出口)

Angular2 RC1 - 数据加载后加载路由(路由器 - 出口)

问题描述:

我在Angular2 RC1中使用新路由器(不是路由器废弃)。我需要能够在应用程序继续加载之前加载JSON配置文件。我使用Config类来获取我的JSON配置,但问题是,我不希望路由器插座加载,直到我的配置完成加载。Angular2 RC1 - 数据加载后加载路由(路由器 - 出口)

我试图用一个*ngIf包裹<router-outlet>,才碰到这个问题来了:https://github.com/angular/angular/issues/8539

我也尝试延长<router-outlet>,每本article,但没有运气(不RC1工作)

Angular1有一种“重新加载”路线的方法,但这似乎并不存在于NG2中。

我该怎么做?如何在应用程序加载后加载我的JSON配置文件,并在配置完成后呈现应用程序?其他人是否成功完成了这个任务

+0

该路由器即将被替换* *。我认为最好的方法是通过在路由组件视图的最外层元素中添加'* ngIf =“data”'来延迟组件的渲染。 –

在新的路由器(>= RC.3https://angular.io/docs/ts/latest/api/router/index/Router-interface.html#!#resetConfig-anchorresetConfig可用于

router.resetConfig([ 
{ path: 'team/:id', component: TeamCmp, children: [ 
    { path: 'simple', component: SimpleCmp }, 
    { path: 'user/:name', component: UserCmp } 
] } 
]); 

对于你的情况我会初始化一些虚拟路由和虚拟组件的路由器,那么你的JSON后可用负荷新路线并导航到新的默认路线。

https://github.com/angular/angular/issues/11437#issuecomment-245995186提供RC.6 Plunker

如何考虑加载网页?这样,如果您的数据尚未完全加载,它将显示一个加载页面,而不是您的路线。

有关如何在Angular2中实现加载屏幕的建议,请参阅this question

更新:

在另一方面,我刚刚发现,我们可以预先加载使用路由解析数据。我仍然在了解它,this angular documentation可能会有所帮助。