首页 > 解决方案 > 访问服务的activatedRoute.params

问题描述

我正在开发一个使用大量路径参数的 Angular 项目

/sec/:sec/subsec/:subsec/foo/:foo

这当然也被后端 API 使用,所以我需要访问它们,这开始造成一些混乱。目前我activatedRoute在我的组件中使用来访问这些参数。

this.activatedRoute.params.subscribe((params: Params) => {
this.sec = params['sec'];

然而,这导致我在每个组件中一遍又一遍地创建完全相同的代码。我非常想简单地创建一个允许我访问这些参数的服务,例如:

    class myParamState{

    sec: string;
    subsec: string
    foo: string;
    //...

    }

在这一点上,我已经设法访问我的路由器插座组件中的路由器,这对我来说几乎是这样做的。

constructor(private router: Router) {
router.events.subscribe(val => {
console.log(val);
});
}

我被困在哪里了?我不确定如何从路由器中提取参数(甚至不确定这是否是最好的方法)。如果可以的话,我可以只更新一个我可以重用的服务,我就完成了。

我觉得我错过了一些非常明显的东西,也许是内置的东西——我被卡住了

标签: angular

解决方案


我认为在这种情况下的好方法是创建转换器服务,它接受参数并将其转换为您的模型(myParamState)。转换后,您可以将此对象传递给另一个服务并将其发送到后端。


推荐阅读