Angular2 Перенаправление маршрутизации с помощью маршрутаParams

Есть ли способ доступа к routerParams в redirecTo-Statement?

Я хочу передать orderId пути "Заказ" на маршрут "OrderDashboard", но я не могу понять, что писать вместо ???

Если я заменяю ??? на 3, все работает отлично (в случае, если пользователь только интересуется порядковым номером 3;-))

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

Ответ 1

Поздно к вечеринке, но в любом случае

Я не мог найти ссылку на доступ к routeParams во время router.config,
Но все же вы можете добиться такого же поведения, используя один из этих методов.


1. Определение двух маршрутов с помощью Same Component

(не точно так же, как 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}])
  }
}

Надеюсь, что это работает:)