我的应用程序在我的app.component.html中有一个路由器插座,但是一个名为EventDetailsComponent的嵌套组件我希望有另一个带有两个子路由的路由器插座 .

简单地说,我只需要一个具有自己视图的组件(EventDetailsComponent),但也需要两个可以路由到的子视图 . 初始化父/子组件时,我默认导航到createSession组件

我遇到的问题是当我尝试在方法addSession()中导航时出现此错误:

error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'events/2'

在按钮或锚标记上使用routerLink指令时,我没有这个问题,如下所示: <button [routerLink]="['/events/2', {outlets: {'nav': ['session']}}]"></button>

export class EventDetailsComponent {


      constructor(private eventService:EventService,
                  private router: Router, private route: ActivateRoute) {
      }


      addSession() {
        this.router.navigate(['/events',2, {outlets: {'nav': ['session']}}]);
      }

    }

eventDetailComponent.html

<div>
         <router-outlet name="nav"></router-outlet>
     </div>

in Routes.ts loaded in app.module

export const appRoutes:Routes = [
      { path: 'events', component: EventsListComponent }, 
      { path: 'events/:id', component: EventDetailsComponent, resolve: {event: EventResolver}, children:[
        {path:'event', component: createEvent, outlet:'nav' },
        {path:'session', component: createSession, outlet:'nav' }
      ] }
    ]

我真的想知道如何在使用router-outlet时正确提供router.navigate()的参数 . 特别是为什么没有找到提供父路线'/ events,2,...'的原因?任何想法都将非常感激