2017-07-28 34 views
1

是否可以創建一個Angular CanActivate Guard,讓用戶只有通過router.navigate導航才能訪問路由?只能通過router.navigate訪問的角路由

示例: 用戶創建一個帳戶,並且有兩個組件可以顯示:RegistrationForm和ConfirmationForm。他們都有自己的具體路線配置'registrationForm','confirmationForm'。我希望ConfirmationForm只有在用戶通過RegistrationForm併成功註冊後才能訪問,我使用router.navigate('confirmationForm')。當用戶將www.someURL.com/confirmationForm放入瀏覽器地址欄時,我希望它被阻止。

+1

你考慮使用服務來存儲一個標誌i.e.'canShowConfirmationForm'?然後你可以在RegistrationForm中設置它並在Guard中使用。 – dzejdzej

+0

嗯,我想我會這樣做,因爲這是我迄今發現的最佳解決方案 – patrykf

回答

0

何不兩種形式結合成單一成分,並使用*ngIf隱藏/顯示部分根據登記結果

+0

我需要兩種組件的不同路線。 – patrykf