我正在使用Angular路线浏览组件。当用户登录时,他们被导航到dashboard/:id
,然后他们看到dashboard/123/projects
等。问题是,当用户仅导航到/dashboard
时,我想将他们重定向到{{ 1}}。但是,当我这样做时:/dashboard/:id
出现错误,提示未定义{ path:"dashboard", redirectTo:"dashboard/:id/projects", pathMatch:"full"}
,因此我无法从:id
导航到登录/dashboard
的当前用户
我的Routes.modules.ts代码
/dashboard/123/projects
答案 0 :(得分:1)
您可以使用“登录”组件实现此目的。成功登录后,将用户重定向到子路由。
从有效负载或API调用中获取用户的ID(取决于您的结构),并将其传递给路由。
:target
this.router.navigate(['/dashboard/' + id + '/projects']);
是this.router
的实例。
答案 1 :(得分:1)
我认为您需要将“:id”的值存储在请求之间的本地存储中,例如存储最后一个“ id”。
在重定向中提供一个任意值,然后在DashboardComponent
中捕获它。寻找9999(或其他任何值),然后替换本地存储中的值。
ngOnInit() {
localStorage.getItem('id'))
}
{
path: "dashboard",
redirectTo: "dashboard/99999", //How to redirect to dashboard/:id ?
pathMatch: "full"
}