Angular 是否可以更新一个已定义的路由器参数?

Angular 是否可以更新一个已定义的路由器参数?,angular,angular-routing,Angular,Angular Routing,导航到路线的标准方式是 this.router.navigate(["/details", "30"] 使用以下路由配置: { path: "details/:id", component: TestRouteComponent } 我的类的构造函数是 constructor(private router: Router, private route: ActivatedRoute) { } 我想做的只是更新当前路线的id 差不多 this.route.params.id = 10;

导航到路线的标准方式是

this.router.navigate(["/details", "30"]
使用以下路由配置:

{ path: "details/:id", component: TestRouteComponent }
我的类的构造函数是

constructor(private router: Router, private route: ActivatedRoute) { }

我想做的只是更新当前路线的
id

差不多

this.route.params.id = 10;
然后导航到那条路线

this.router.navigate(this.route);

角度布线可能吗?

您无法操作
参数
,因为这是一个
可观察的
。 您可以这样做:

router.navigate(['..', 2], { relativeTo: route });
这两个点表示你向上移动了一层

from `welcome/1` to `welcome`
之后,您的参数将附加到路由


但是我想知道是否有更好的方法来简单地更改参数。

我说得对吗,当组件的路由参数发生变化时,您希望对组件内部的变化做出反应

如果是,则不希望触发新的导航。 您只需订阅
参数的更改

 constructor(private route: ActivatedRoute) {
   this.route.params.subscribe(params => {
      /* access updated params and trigger further actions */
  }
}
现在,如果有多个链接(例如routerLink)指向具有不同参数的组件,路由器将检测到无需激活新路由。 因此,您可以订阅
params
paramMap

为您提供了访问路由的某些参数的更多控制