gpt4 book ai didi

angular - 获取组件中的路由参数

转载 作者:太空狗 更新时间:2023-10-29 17:49:18 28 4
gpt4 key购买 nike

我正在从事 Angular-6 项目。我的申请有很多子路线。其中之一如下:

  const routes: Routes = [
{
path: 'innovation-track/:innovation-track-id', component: InnovationTrackComponent,
children: [
{
path: 'sprint', component: ScrumBoardComponent
}
]
}
];

我想从我的 ScrumBoardComponent 中的 URL 获取 innovation-track-id 值。

我知道我可以通过执行以下操作得到它:

 constructor(private _route: ActivatedRoute) { }

//somewhere in method
this._route.snapshot.parent.paramMap

但是,我想获取任何组件中的 innovation-track-id 值,无论它是子组件还是父组件。我的意思是我不想做以下事情:

this._route.snapshot.parent.paramMap

相反,我想做如下事情:

 this._route.params.<any parameter name>

最佳答案

创建一个服务(我们称之为RouteParamsService):

export class RouteParamsService {
innovationTrackId = new BehaviorSubject(undefined);
}

在你的父组件中,订阅参数:

constructor(private route: ActivatedRoute, private service: RouteParamsService) {
route.params
.subscribe(params => service.innovationTrackId
.next(params && params['innovation-track-id'] || undefined))
}

现在您可以在任何组件中订阅您的服务,您将获得您的参数值。父组件将处理任何值更改,服务会将更改传播到订阅它的任何组件。

关于angular - 获取组件中的路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com