我正在使用 Angular 5 并定义了一些路由。当我导航路线并在 canActivate 函数防护上放置断点时,我看到它执行了两次。
我问这个问题是因为我必须在每个 canActivate 调用上调用外部服务,并且多次无用地执行相同的服务会导致不必要的开销。
刚刚发生在我身上,问题是我的以下代码片段AuthGuard:
setActiveWebsite(website: string): void {
this._website.next(website);
this.router.navigate([]); <-- This line here
}
Run Code Online (Sandbox Code Playgroud)
它执行了两次,因为它设置了一个值,重定向,然后跳过了身份验证,因为它解析为true立即。
您是否可能在您的或route.navigate之一中使用或重定向?guardsresolvers