角路由器如何从父组件调用子组件

时间:2018-11-13 14:46:47

标签: javascript angular typescript routes

我有以下路线-

const routes: Routes = [
    {
        path: '',
        component: ParentComponent,
        children: [
            {
                path: ':id',
                component: ChildComponent,
            },
        ]
    }
];
在父级构造函数中的

,我想导航到一些id,例如'test'。 我尝试过这个

constructor(private router: Router) {
    this.router.navigate(['child']);
}

还有这个

constructor(private router: Router) {
    this.router.navigate(['/child']);
}

还有这个

constructor(private router: Router) {
    this.router.navigate(['./child']);
}

还有这个

constructor(private router: Router) {
        this.router.navigate(['../child']);
    }

我的网址是-https://docs.microsoft.com/en-us/iis/configuration/system.webserver/httpredirect/

但是所有这些选项我都转到http://localhost:4200/parent而不是http://localhost:4200/child

知道为什么吗?我该如何相对于父母?

1 个答案:

答案 0 :(得分:3)

因为navigate采用绝对路径。

您必须明确地告诉它是相对的:

constructor(
  private router: Router,
  private route: ActivatedRoute
) {
  this.router.navigate(['child'], { relativeTo: this.route });
}