2017-07-28 39 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