路由器可以激活超过1个防护

时间:2017-06-16 10:25:36

标签: angular angular-routing

angular(v 4.1.1)路由器canActivate是否需要多个函数

{
   path: '',
   component: SomeComponent,
   canActivate: [guard1, guard2, ...]
}

应该是这样的吗?如果不是,如果它只假装一名后卫,为什么它会在列表中

因为我有类似的内容,即使guard1返回falseguard2仍会被执行。

提前致谢

Angular 4.1.1

1 个答案:

答案 0 :(得分:3)

这应该有效,但我相信守卫是按顺序并行执行的。所以第二个不会等到第一个返回一个值。如果你的警卫是同步的,这不应该真正影响你,但如果它们是异步的,你将遇到这个"问题"。

如果你需要你的警卫相互依赖,你可以将支票的共同部分分开,你的所有警卫都可以称之为逻辑。但我认为在大多数情况下甚至不需要这样做,因为如果只有其中一个失败,则路线不会被激活。