2016-06-08 132 views
0

我在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」'來延遲組件的渲染。 –

回答

0

在新的路由器(>= 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

-1

如何考慮加載網頁?這樣,如果您的數據尚未完全加載,它將顯示一個加載頁面,而不是您的路線。

有關如何在Angular2中實現加載屏幕的建議,請參閱this question

更新:

在另一方面,我剛剛發現,我們可以預先加載使用路由解析數據。我仍然在瞭解它,this angular documentation可能會有所幫助。