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
为您提供了访问路由的某些参数的更多控制