我有一个主路由器插座和一个命名插座。主插座包含一个子路由器插座。当我尝试仅更改命名的插座时,它会失败 - 我被路由到默认的主路由,并且在命名的插座中没有任何反应。
AppRouter(主/AppModule):
{ path: 'dashboard', component: DashboardComponent },
{ path: 'person/:id', component: PersonProfileComponent }
{ path: '', redirectTo: 'dashboard', pathMatch: 'full' },
{ path: '**', redirectTo: 'dashboard', pathMatch: 'full' }
子路由器(独立模块):
{
path: 'person/:id',
component: PersonProfileComponent,
children: [
{ path: 'people', component: PersonPeopleComponent },
{
path:'person-edit',
component: PersonEditPanelComponent,
outlet:'taskPane'
},
}
从 PersonPeopleComponent(在主插座和子插座#/person/8/people
中匹配的 URL ),我有以下 RouterLink:person/:id
people
<a [routerLink]="[{outlets:{taskPane : ['person-edit']} }]">Click Me!</a>
taskPane
命名的出口在哪里。
我期望发生的是,PersonEditPanelComponent
将在taskPane
指定的出口中显示,并且PersonProfileComponent
在PersonPeopleComponent
主要和子出口中将保持不变。相反,我看到的是Dashboard
路由(我的后备路由)被加载到主出口并且taskPane
出口是空的。控制台中没有记录错误。
我的链接上的 href 最终变成了#/person/8/(people//taskPane:person-edit)
不起作用的东西(我在路由器链接上尝试了许多不同的排列,因此这只是一个无效 URL 的示例)。URL 必须是#/person/8/people(taskPane:person-edit)
有效的(我手动测试过),但我不知道如何设置 RouterLink 以生成该 URL。
我认为路由配置正确,因为当我对其进行硬编码时 URL 有效,这意味着问题出在 RouterLink 中。
关于我做错了什么的任何线索?
谢谢。