Angular2 路由重定向和路由参数

11

有办法在redirectTo语句中访问routerParams吗?

我想将“订单”路由的orderId传递给“订单仪表板”路由,但我不知道该在???中填入什么。

如果我用3替换???,则一切正常(如果用户只对订单号为3感兴趣;-))

{path:'/:orderId',name:'Order',redirectTo:['OrderDashboard',{orderId:???}]} {path:'/:orderId /dashboard',name:'OrderDashboard'}

1个回答

6

虽然来晚了,但仍然希望能够帮到您。

我没有找到在router.config时访问routeParams的任何参考资料,但是您仍然可以使用以下技术实现相同的行为:


1. 使用相同组件定义两个路由

(与地址栏中的URL不完全相同)

{path: '/:orderId', name: 'Order', component: OrderDashboard}
{path: '/:orderId/dashboard', name: 'OrderDashboard', component: OrderDashboard}

2. 使用一次性组件作为代理

{path: '/:orderId', name: 'Order', component: OnlyToRedirect}
{path: '/:orderId/dashboard', name: 'OrderDashboard', component: OrderDashboard}

export class OnlyToRedirect{
  constructor(routeParams: RouteParams, router: Router){
    router.navigate(['OrderDashboard', {orderId: routeParams.params}])
  }
}

希望这个能够成功 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接