angular2 routing——在Angular 2中强制用户按顺序导航



我有一堆组件,我可以在它们之间导航。然而,业务要求用户依次导航到其中的每一个组件,也就是说,如果用户仍然没有执行第一个组件所需的所有操作,则不应该导航到第二个组件。大约有5个组件,用户必须与之前的所有组件进行交互才能到达最后一个组件。

在Angular 1中,我曾经在服务中保留了一个标志,它告诉我用户是否已经导航过了特定控制器中的所有步骤。在初始化序列中的下一个控制器时,我检查布尔值是否为真。如果没有,我通过编程将用户重定向到序列中的第一个控制器。

我想知道我是否也可以在Angular 2中做到这一点(组件取代控制器,虽然)。也许有办法用守卫来解决?

技术上你可以使用Guard来实现这个功能,但我不认为这是一个更好的解决方案。首先,你需要4个不同的守卫(4个后续组件)。其次,CanActivateGuard最好的事情是完全阻止你导航到视图;这对于保护受限制的内容很好,但对您的情况没有多大帮助。

我建议你用你现在的方法,在公共服务中保留一个标志,并注入到所有这些组件中。

相关内容

最新更新