你好 Angular 程序员们,
在我的应用程序中,我有一个呈现“容器”组件的模块,该组件又具有一个菜单组件和一个命名的路由器插座(这里的想法是有一个子导航菜单和页面)。一旦我第一次导航到“容器”路由,就会发生导航,并且命名的路由器出口正确显示在 children[] 中指定的第一个子路由。但是,当我尝试导航到另一个“子”路由时,导航不会发生 - 但 URL 地址会发生变化 - 不会引发错误(干净的控制台)。
初始导航 URL:导航到ActiveDealComponent,呈现菜单,命名的路由器出口也呈现“仪表板”组件。
URL:http://localhost:4200/deal/123456/(dealOutlet::dashboard),由以下代码调用(位于锚标记内):
[routerLink]="['/deal', this.dealId, { outlets: { dealOutlet : [':dashboard'] } }]"
后续导航尝试:命名路由更改,但命名路由器出口不显示新的所需组件(仪表板仍然存在)。
http://localhost:4200/deal/123456/(dealOutlet::assets)由以下代码调用(位于锚标记内):
[routerLink]="['/deal', this.dealId, { outlets: { dealOutlet : [':assets'] } }]"
交易模块.ts
RouterModule.forChild([
{
path: 'deal/:dealId',
component: ActiveDealComponent (this is the "container" component),
canActivate: [PageGuard],
children: [
{
path: ':dashboard',
component: DealoverviewComponent,
canActivate: [PageGuard],
outlet: 'dealOutlet'
},
{
path: ':assets',
component: AssetsComponent,
canActivate: [PageGuard],
outlet: 'dealOutlet'
}
]
}
主动交易.component.html
<div *ngIf="dealId">
<app-deal-nav-menu [active-deal]="dealId">
</app-deal-nav-menu>
</div>
<div class="all-deals">
<div class="container body-content">
<router-outlet name="dealOutlet"></router-outlet>
</div>
</div>
注意:如果我更改子声明顺序,让我们先说“:资产”,然后说“:仪表板:”,然后资产被渲染但仪表板没有。
我在这里想念什么?
提前致谢。