默认情况下如何导航到子路线-Angular 7(路线)

时间:2019-05-15 12:13:48

标签: angular angular6 angular7 angular7-router

我正在使用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

2 个答案:

答案 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"
  }