从列表重定向到 3 个不同的组件
Redirect From a list to 3 different components
我需要将一个Listing的信息发送给3个组件,发送一个id并允许编辑信息;如果用户单击编辑按钮,它将打开 ArticulosComponent、LibroComponent 或 CapitulosComponent,但这些组件来自其他组件。
在编辑按钮中,我必须根据列表中的 selection 将其重定向到一个组件,例如:如果您 select Articulo 它会转到 articulo 组件,为此我有这个方法:
EditarProducto(item) {
debugger;
let tipoProducto = item.tipoProducto;
let Lista = item;
if (tipoProducto != null && tipoProducto != undefined && Lista != null && tipoProducto != Lista) {
switch (tipoProducto) {
case "Artículo":
{
this.router.navigate(['/RegistroProductos/Articulos', { id: item.idProducto }]) break;
}
case "Libros": {
this.router.navigate(['/RegistroProductos/Libros', { id: item.idProducto }]);
break;
}
case "Capítulos": {
this.router.navigate(['/RegistroProductos/Capitulos', { id: item.idProducto }]);
break;
}
}
}
//});
}
我的二级路由器模块是这样的...
const routes: Routes = [
{
path: '',
component: RegistroProductosComponent,
children: [
{
path: ':id', component: ArticulosComponent
},
{
path: ':id', component: CapitulosComponent
},
{
path: ':id', component: LibrosComponent
}
]
},
{ path: '**', redirectTo: '/productos', pathMatch: 'full'}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class RegistroProductosRoutingModule { }
实现此目标的最佳方法是什么?
恕我直言,你几乎完成了,唯一剩下的就是更新辅助路由模块中的路径。
像这样的东西应该有效:
children: [
{
path: '/Articulos/:id', component: ArticulosComponent
},
{
path: '/Capitulos/:id', component: CapitulosComponent
},
// ...
我需要将一个Listing的信息发送给3个组件,发送一个id并允许编辑信息;如果用户单击编辑按钮,它将打开 ArticulosComponent、LibroComponent 或 CapitulosComponent,但这些组件来自其他组件。
在编辑按钮中,我必须根据列表中的 selection 将其重定向到一个组件,例如:如果您 select Articulo 它会转到 articulo 组件,为此我有这个方法:
EditarProducto(item) {
debugger;
let tipoProducto = item.tipoProducto;
let Lista = item;
if (tipoProducto != null && tipoProducto != undefined && Lista != null && tipoProducto != Lista) {
switch (tipoProducto) {
case "Artículo":
{
this.router.navigate(['/RegistroProductos/Articulos', { id: item.idProducto }]) break;
}
case "Libros": {
this.router.navigate(['/RegistroProductos/Libros', { id: item.idProducto }]);
break;
}
case "Capítulos": {
this.router.navigate(['/RegistroProductos/Capitulos', { id: item.idProducto }]);
break;
}
}
}
//});
}
我的二级路由器模块是这样的...
const routes: Routes = [
{
path: '',
component: RegistroProductosComponent,
children: [
{
path: ':id', component: ArticulosComponent
},
{
path: ':id', component: CapitulosComponent
},
{
path: ':id', component: LibrosComponent
}
]
},
{ path: '**', redirectTo: '/productos', pathMatch: 'full'}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class RegistroProductosRoutingModule { }
实现此目标的最佳方法是什么?
恕我直言,你几乎完成了,唯一剩下的就是更新辅助路由模块中的路径。
像这样的东西应该有效:
children: [
{
path: '/Articulos/:id', component: ArticulosComponent
},
{
path: '/Capitulos/:id', component: CapitulosComponent
},
// ...