是否可以更新一个已定义的路由器参数?
Is it possible to update one defined router parameter?
导航到路线的标准方法是
this.router.navigate(["/details", "30"]
具有以下路由配置:
{ path: "details/:id", component: TestRouteComponent }
我的 class 的构造函数是
constructor(private router: Router, private route: ActivatedRoute) { }
我想做的只是更新 current 路由的 id
。
类似
this.route.params.id = 10;
然后导航到该路线
this.router.navigate(this.route);
angular路由是否可行?
您不能操纵 params
,因为这是一个 Observable
。
你可以这样做:
router.navigate(['..', 2], { relativeTo: route });
两个点表示您向上移动了一个级别。
from `welcome/1` to `welcome`
之后你的参数被附加到路由。
但我想知道是否有更好的方法来简单地更改参数。
我说的对吗,您想在组件路由参数发生变化时对组件内部的变化做出反应?
如果是,您不想触发新的导航。
您只需订阅 params
.
的更改
constructor(private route: ActivatedRoute) {
this.route.params.subscribe(params => {
/* access updated params and trigger further actions */
}
}
现在,如果您有多个链接(例如 routerLink)指向具有不同参数的组件,路由器将检测到无需激活新路由。
因此您可以订阅 params
或 paramMap
.
paramMap 使您可以更好地控制访问路由的某些参数。
导航到路线的标准方法是
this.router.navigate(["/details", "30"]
具有以下路由配置:
{ path: "details/:id", component: TestRouteComponent }
我的 class 的构造函数是
constructor(private router: Router, private route: ActivatedRoute) { }
我想做的只是更新 current 路由的 id
。
类似
this.route.params.id = 10;
然后导航到该路线
this.router.navigate(this.route);
angular路由是否可行?
您不能操纵 params
,因为这是一个 Observable
。
你可以这样做:
router.navigate(['..', 2], { relativeTo: route });
两个点表示您向上移动了一个级别。
from `welcome/1` to `welcome`
之后你的参数被附加到路由。
但我想知道是否有更好的方法来简单地更改参数。
我说的对吗,您想在组件路由参数发生变化时对组件内部的变化做出反应?
如果是,您不想触发新的导航。
您只需订阅 params
.
constructor(private route: ActivatedRoute) {
this.route.params.subscribe(params => {
/* access updated params and trigger further actions */
}
}
现在,如果您有多个链接(例如 routerLink)指向具有不同参数的组件,路由器将检测到无需激活新路由。
因此您可以订阅 params
或 paramMap
.
paramMap 使您可以更好地控制访问路由的某些参数。