В angularJS, при использовании UI-Router, вы могли по существу называть маршруты, так как каждое состояние имело имя, и вы могли перейти к этому маршруту.
Например: $stateProvider.state("base", { url: "/", controller: "baseController" });
, а затем перейти кПо этому маршруту вы можете сделать что-то вроде: $state.go("base");
Я пытаюсь сделать то же самое в angular v5.2 с ActivatedRoute .
Компонент, в котором я нахожусь, имеет маршрут: base/:acctId/:session/upsells/:id/:type
, и я хочу перейти к base/:acctId/:session/config/:id/:type
Я хочу добавить динамический сегмент в ActivatedRouteэто заполнит config/:id
, чтобы при навигации по маршрутизатору я мог добавить :type
.
Итак, из компонента, в котором я нахожусь (base/:acctId/:session/upsells/:id/:type
), я хочу перейти на другой маршрут после добавления пары сегментов в ActivatedRoute и вызова: this.router.navigate([type], { relativeTo: this.activatedRoute }
НетМногое в документации об изменении ActivatedRoute, и я попытался изменить параметры, но кажется, что Маршрутизатор не использует параметры для навигации.Я попытался сделать что-то похожее на комментарий Виктора Савкина к этой проблеме github , но опять же я не уверен в поведении функций Router.navigate.
Я использовал this.router.createUrlTree(['./config', configId, idd], { relativeTo: this.route.parent})
, чтобы получитьдерево URL это именно то, что мне нужно, но проблема в том, что функция this.router.navigate принимает объект ActivatedRoute для навигации относительно объекта вместо объекта UrlTree.Существует ли карта для создания объекта ActivatedRoute из дерева URL-адресов?
Моя конфигурация маршрутизатора выглядит следующим образом:
const routes: Routes = [
{
path: "base/:acctId/:session",
children: [
{
path: "config/:configid/:idd",
component: ListViewItemDetailComponent,
children: [
{
path: "type1", <----- i want to get here
component: type1Component
},
{
path: "type2",
component: type2Component
},
{
path: "type3",
component: type3Component
}
]
},
{
path: "upsells/:id/:type", <------ I am here
component: UpsellsComponent
}
]
}
]
Дайте мне знать, если что-то из этого не имеет смысла, испасибо за ваше время.