如何将段添加到ActivatedRoute?

时间:2018-06-01 20:50:14

标签: angular angular-router angular-activatedroute

在angularJS中,当使用UI-Router时,您可以实际命名路由,因为每个州都有一个名称,您可以导航到该路由。

例如: public class Car { public string Firm { get; set; } public string Pic { get; set; } public string Model { get; set; } public string Year { get; set; } } 然后导航到该路线,您可以执行以下操作: $stateProvider.state("base", { url: "/", controller: "baseController" });

我正在尝试使用 ActivatedRoute 在角度v5.2中执行相同的操作。

我所在的组件的路线为:$state.go("base");

我希望导航到base/:acctId/:session/upsells/:id/:type

我想在ActivatedRoute中添加一个动态段,它将填充base/:acctId/:session/config/:id/:type,这样当我使用路由器导航时,我可以附加config/:id

所以从我所在的组件(:type)开始,我想在向ActivatedRoute添加几个段并调用之后导航到另一个路由: base/:acctId/:session/upsells/:id/:type

文档中没有关于修改ActivatedRoute的内容,我尝试修改了参数,但似乎路由器没有使用参数来导航。我尝试过类似Viktor Savkin's comment on this github issue的操作,但我又不确定Router.navigate函数的行为。

我已经使用this.router.navigate([type], { relativeTo: this.activatedRoute }生成了一个正是我所需要的url树,但问题是this.router.navigate函数使用ActivatedRoute对象来相对而不是UrlTree对象进行导航。是否有从地图树创建ActivatedRoute对象的地图?

我的路由器配置如下:

this.router.createUrlTree(['./config', configId, idd], { relativeTo: this.route.parent})

请告诉我这些内容是否有意义,谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

选中stackblitz POC我添加了相同路由配置的地方。

基本上,我使用以下路由逻辑路由到指定的type1路由 -

this._router.navigate(['./config/1/2/type1'], {
  relativeTo: this._ActivatedRoute.parent
});

this._ActivatedRoute.parent到达父路线即。 base/:acctId/:session&然后给出相对路径以达到type1即。 ./config/1/2/type1

我希望这会有所帮助。