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

时间:2016-08-10 22:29:13

标签: angular angular2-routing

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

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

我想知道我是否也可以在Angular 2中做到这一点(组件替换控制器)。也许有一种方法可以使用Guard?

1 个答案:

答案 0 :(得分:0)

从技术上讲,您可以使用Guard来实现此功能,但我认为这不是更好的解决方案。首先,你需要有4个不同的防护装置(4个后续装置)。其次,CanActivateGuard最好的办法就是完全阻止你导航到一个视图;这对于保护受限制的内容很有用,但在你的情况下不会提供太多。

我建议你采用当前的方式,在一个注入所有这些组件的公共服务中保留一个标志。