Note 使用相关代码段进行编辑
我遇到了一个奇怪的问题,我在发出router.navigate时遇到无限重定向循环 .
Setup
-
我使用哈希位置策略,该应用程序用作Outlook插件 .
-
我有三个路由规则
-
“" redirect to " / login”
-
"/login"映射到LoginViewComponent
-
"/foo"已映射到FooViewComponent
-
LoginViewComponent有两个行为:
-
如果无法验证用户的身份,系统将提示用户输入凭据
-
如果没有向FooViewComponent发出重定向
-
重定向只是使用以下逻辑位发出:
this.router.navigate(["foo"])
- 路线注册如下:
const routes: Routes = [
{
path: "",
redirectTo: "login",
pathMatch: "full"
},
{
path: "login",
component: LoginViewComponent
},
{
path: "foo",
component: FooComponentView
}
];
@NgModule({
imports: [RouterModule.forRoot(routes, { useHash: true, enableTracing: true})],
exports: [RouterModule]
})
export class AppRoutingModule { }
Problem
-
当我在LoginViewComponent的ngOnInit函数中发出重定向时,我进入了一个无限重定向循环 .
-
它首先导航到FooViewComponent,然后重定向回LoginViewComponent .
-
据我所知,只有在调用router.navigate([" "])或router.navigate(["login"])时才能重定向到LoginViewComponent . 但是,这些导航命令都不存在于FooViewComponent中 .