2016-06-11 72 views
0

我有一個WhatsNew組件,這我的路線配置:當組件完成渲染,然後更改路線角2

@RouteConfig([ 

    { path: '/whatsnew', name: 'WhatsNew', component: WhatsNew }, 

]) 

我在其他路線和組件。我的問題是我想要whatsnew完全呈現,然後路由更改並導航到WhatsNew。我不希望用戶看到渲染頁面,如何在角度2中做到這一點?

+0

你能解釋一下這個的目的是什麼嗎?對我來說這沒有意義。你爲什麼要渲染一些不可見的東西,然後導航呢? –

+0

yeess ...我想發送請求到服務器,例如如果是真的,然後路由進入更改... –

+0

沒有必要呈現該組件。請添加更多代碼來演示您要完成的任務。 –

回答

0

您可以實施CanActivate生命週期回調。通過這種方式,您可以在對服務器的調用返回到該路由正常或重定向到另一個路由時返回承諾,該承諾完成爲true。

一個問題是,CanActivate是一個裝飾器,DI不支持裝飾器,但您需要獲取對服務的引用來調用服務器。

This comment包含對Plunker一個鏈接,演示瞭如何DI可以CanActivate

使用有幾個問題是生命週期回調不等待的承諾,以解決他們繼續導航之前。我不記得這是否適用於CanActivate。有再次一個新的路由器的方式,這是不可能的問題將被固定的舊路由器。

+0

tnx的答案我會檢查它... –