【发布时间】:2020-04-12 11:04:51
【问题描述】:
如果他们有孩子,是否有机会在无组件路由中进行深度链接?从这里开始:
路由器模块:
@NgModule({
declarations: [
CatalogComponent, ProductComponent, PictureComponent
],
imports: [
RouterModule.forRoot([
{ path: 'catalog', component: CatalogComponent,
children :[
{ path: '', component: ProductComponent, outlet: "product"},
{ path: '', component: PictureComponent, outlet: "picture"}
]
}
])
],
exports: [
RouterModule,
]
})
export class AppRoutingModule {}
目录组件模板
<div>Catalog
<router-outlet name="product"></router-outlet>
<router-outlet name="picture"></router-outlet>
</div>
这里实现的是在导航到 /catalog 时并行加载了 2 个组件。这行得通!
但是知道我想用这样的子路由来推进这个无组件路由:
@NgModule({
declarations: [
CatalogComponent, ProductComponent, PictureComponent, ItemComponent, StackComponent
],
imports: [
RouterModule.forRoot([
{ path: 'catalog', component: CatalogComponent,
children :[
{ path: '', component: ProductComponent, outlet:"product",
children :[
{ path: 'x', component: ItemComponent}
]
},
{ path: '', component: PictureComponent, outlet: "picture",
children :[
{ path: 'y', component: StackComponent}
]
}
]}
])
],
exports: [
RouterModule,
]
})
export class AppRoutingModule {}
我希望实现这个组件结构:
CatalogComponent -> ProductComponent
-> ItemComponent
-> PictureComponent
-> StackComponent
而 ProductComponent 和 PictureComponent 是并行渲染的,而 ItemComponent/StackComponent 的行为取决于 URL:
URL: catalog/x
CatalogComponent -> ProductComponent
-> ItemComponent
-> PictureComponent
URL: catalog/y
CatalogComponent -> ProductComponent
-> PictureComponent
-> StackComponent
所以使用多个无路径路由是一种在同一页面上并行加载多个组件的方法,一种辅助路由。但是当涉及到深度链接时,它似乎根本不起作用。这在 Angular 中是否可行?
【问题讨论】:
-
我在这里玩过,但我仍然没有找到解决方案。 github.com/Numichi/stackoverflow-angular8/blob/…
-
好的,谢谢你的努力!!!