我的应用模块中有一个备用路由器插座,如下所示。
<router-outlet></router-outlet> <==== PRIMARY
<mat-sidenav-container>
<mat-sidenav mode="over">
<router-outlet name="side"></router-outlet> <=== SECONDARY NAMED OUTLET
</mat-sidenav>
</mat-sidenav-container>
然后我有一个带有子路线的功能模块,如下所示,
@NgModule({
RouterModule.forChild([
{
path: "orders",
component: OrdersComponent,
children: [
{
path: "add",
component: AddOrderComponent,
outlet: "side", <=== SAYING PATH TO USE SECONDARY OUTLET DEFINED IN APP MODULE
},
]
},
])
})
export class OrdersModule {}
我正在尝试在我的应用程序模块的辅助插座(名称为“ side”)中显示AddOrderComponent,但是插座未激活。
<a [routerLink]="['../orders',{outlets: { side: ['add']}}]">
Add New Order
</a>
如果我将辅助插座移到功能模块内的任何其他组件中,则它正在工作。
我需要在routerLink或路由定义中定义什么特殊功能才能从功能模块访问AppModule中定义的辅助路由器出口?
注意:这不是延迟加载的模块。自我引导时导入到应用模块中。
谢谢。
答案 0 :(得分:0)
现在,只需阅读https://stackoverflow.com/a/53810892/3534886上的答案,便会解释我对子路线和命名路线之间的区别。所以功能模块对我而言不是问题。
它说, 子路由用于应该出现在另一个模板中的路由。
命名路由用于应显示为另一个模板的同级路由,例如并排显示。
就我而言,
我在我的应用程序组件中定义了2个并行出口(作为兄弟姐妹)。但是想要功能模块的子代在同级内部进行渲染。
关系冲突!