2017-07-07 65 views
0

我有一個角(4.2.5)的應用程序,並在我的代碼的某個時刻,我這樣做:角 - 路由器導航取消沒有道理

this._appService 
    .post('/createhero/save', opts) 
    .subscribe(
     (resData: any) => 
     { 
      this._router.navigate(['home']); 
     } 
    ); 

路由器調用navigate()不起作用 - 什麼都沒發生。我啓用了路由的調試,這是我所得到的:

Error

所以導航,而不給出的理由取消。在其他組件中,我有相同種類的navigate()(一些可觀察的回調函數),效果很好。路線/home也適用。

我開始用盡想法,我甚至不知道爲什麼navigate()在這種情況下不起作用。

+0

你在哪裏使用導航代碼? – TheUnreal

+0

在我的CreateHeroComponent的save()方法中,它由一個按鈕'觸發完成' –

回答

2

也有類似的問題,reason真的沒有幫助它:)

什麼我的問題是,是,我試圖導航路線對自身的保護,其認購觀察到的,因爲我已經給了值,它的初始值爲false,由於路由被阻止,導航被取消。

難道這是一些其他的警衛阻止路線和canActivate()發出true/false而取決於您的查詢結果,但實際上並沒有等待結果?

希望這有助於調試:)

+0

夥計,這正是 - 我幾天前發現瞭解決方案,你釘了它=) –

+0

是的,對我來說也是這個問題,謝謝。 – siebmanb

+0

我有一條更嚴格的守衛的兒童路線,幫助我走出困境。感謝提示。 –