路由器可以激活超过 1 个守卫

Router canActivate with more than 1 guard

angular(v 4.1.1) 路由器 canActivate 是否具有多个功能

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

这样的东西应该有用吗?如果不是,如果它只需要一名警卫,他们为什么会在列表中

因为我有类似的东西,即使guard1 returns falseguard2仍然会被执行。

提前致谢

Angular 4.1.1

这应该可行,但我相信守卫是并行执行的,而不是按顺序执行的。所以第二个不会等到第一个 return 一个值。如果你的守卫是同步的,这应该不会真正影响你,但如果他们是异步的,你将 运行 进入这个 "issue".

如果你需要你的守卫相互依赖,你可以将检查的公共部分分开,你的所有守卫都可以调用该逻辑。但我认为在大多数情况下,这甚至是不必要的,因为如果只有其中一个失败,路由就不会被激活。