我有一个组件 DfqComponent ,我想把它变成一个模块,但它应该保持其路由行为。这些是我想要保留的路径,在模块 ProductionLineRoutingModule 中定义,它有自己的插座:
const routes: Routes = [
{ path: 'line', component: ProductionLineListComponent },
{ path: 'line/:name', component: ProductionLineDetailsComponent,
children: [
{ path: 'dfq', component: DfqComponent },
// other modules planed
{ path: '', pathMatch: 'full', redirectTo: 'dfq' }
]
}];
要将 DfqComponent 转换为 DfqModule 并像以前一样调用它,我在 DfqRoutingModule 中使用了以下路由:
const routes: Routes = [
{ path: 'line/:name/dfq', component: DfqComponent }
];
这向我展示了所需的html(实际上只是单词DFQ),但在我看来有两个缺点:
1.出口现在是 AppComponent 的主要出口
2.路线定义与 ProductionLineModule (' 行/:名称/ dfq '而不是&# 39;的 DFQ '。)
那我怎么能实现这个目标呢?
该项目实际上是这样的:
答案 0 :(得分:1)
我这样做的方法是通过loadChildren。在父路由
中a
在dfq路由
中[{
path: 'line/:name',
loadChildren: './dfq/Dfq.module#DfqModule'
}]
在导入中的DfqModule
[{
path: 'dfq', component: DfqComponent
}]
答案 1 :(得分:0)
好的,多亏了 elasticrash ,它现在可以运行,代码文件看起来很清晰。
要删除 ProductionLineRoutingModule 中的children []数组,并使用loadChildren属性添加多个路径定义。 DfqModule和DfqRoutingModule已经没事了。
const routes: Routes = [
{ path: 'line', component: ProductionLineListComponent },
{ path: 'line/:name', component: ProductionLineDetailsComponent,
loadChildren: '../masterdata/masterdata.module#MasterdataModule'
},
{ path: 'line/:name', component: ProductionLineDetailsComponent,
loadChildren: '../order/order.module#OrderModule'
},
{ path: 'line/:name', component: ProductionLineDetailsComponent,
loadChildren: '../dfq/dfq.module#DfqModule'
}
];
关于缺少的东西:我现在如何设置默认路线,例如' dfq'?
谢谢!