首页 > 解决方案 > 角度嵌套路由未调用组件

问题描述

我有一条嵌套路线,我正在尝试开始工作。当我尝试像这样导航到嵌套路由时:

this.router.navigateByUrl('/project/' + this.project._id + '/shot/' + row._id);

它将浏览器中的路线更改为应有的样子。例如:

http://localhost:4200/project/5cdc30c20d86931b180de39b/shot/5cdc31170d86931b180de3b2

但是,ShotComponent 永远不会被实例化!

app.routes.ts 看起来像这样。

{ 
  path: 'project',
  children: [
  {
    path: '',
    component: ProjectListComponent
  },
  {
    path: ':_id',
    component: ProjectComponent,
    children: [
    {
      path: 'shot/:_id',
      component: ShotComponent
    }]
  }]
}

如果我将拍摄路线设为非嵌套路线,则组件将被正确实例化。我想我这里有问题。有任何想法吗?在控制台或角度 cli 中没有生成错误

标签: angularangular-router

解决方案


尝试为镜头 ID 添加不同的名称

{ 
  path: 'project',
  children: [
  {
    path: '',
    component: ProjectListComponent
  },
  {
    path: ':_id',
    component: ProjectComponent,
    children: [
    {
      path: 'shot/:_shotid',
      component: ShotComponent
    }]
  }]
}

推荐阅读