angular - 访问服务的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);
});
}
我被困在哪里了?我不确定如何从路由器中提取参数(甚至不确定这是否是最好的方法)。如果可以的话,我可以只更新一个我可以重用的服务,我就完成了。
我觉得我错过了一些非常明显的东西,也许是内置的东西——我被卡住了
解决方案
我认为在这种情况下的好方法是创建转换器服务,它接受参数并将其转换为您的模型(myParamState)。转换后,您可以将此对象传递给另一个服务并将其发送到后端。
推荐阅读
- node.js - 如何摆脱 Visual Studio 终端 nodejs 中的 [Object: null prototype]?
- recursion - Prolog中带条件的递归求和
- django - 在分组查询集中包含没有记录的选择
- r - 省略号参数文档
- php - 如何在 PHP 中管理电子商店中的缓存?
- java - AWS Transcribe - 当我们看到“IsPartial”标志设置为 False 时如何停止转录
- flutter - Flutter in_app_purchase 插件的正确实现多消耗品
- php - 如何在 dokan lite 插件中到处用“Artist”替换“vendor”字符串?
- firebase - 关于 Firebase 云消息主题与群组的问题
- php - 创建新产品时添加 meta_key