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配置文件,并在配置完成后呈现应用程序?其他人是否成功完成了这个任务
在新的路由器(>= RC.3
)https://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可能会有所帮助。
该路由器即将被替换* *。我认为最好的方法是通过在路由组件视图的最外层元素中添加'* ngIf =“data”'来延迟组件的渲染。 –