我的表单需要访问路由参数和数据.它们是可观察的,所以我需要订阅才能访问它们的值.我的问题是,如何在一次订阅中同时访问它们?
this._route.params.subscribe(
params => {
getData(params['id'], data['id2'] <=== i need data value too. how do i get this???)
});
Run Code Online (Sandbox Code Playgroud)
为什么棱角分裂将它们放在两个独立的可观测量中?
此问题与 SO 上的以下现有问题重复:
Angular 6 router - 替换当前路由的部分参数
这些问题的答案都没有完全解决替换 url 中的一个段的问题,因此我再次提出这个问题。
总结一下我的情况:
这些是我项目中的一些路线(我自己没有想出这个,所以请多多包涵)
/:customer/static/part/of/url
/:customer/other/static/stuff
/something/for/the/:customer
/something/without/anything
/other/stuff/:customer/might/need
Run Code Online (Sandbox Code Playgroud)
参数 ":customer" 出现在 url 的不同位置。我的问题是这个客户 ID 可能会在后端更改,而无需前端的任何操作。我正在监听后端的变化,并且必须相应地调整 url,以防客户 ID 发生变化。
简单的 string.replace 行不通,因为从技术上讲,客户 ID 可能实际上和字面上是“静态”或“其他”。
题:
如何分析当前 url (ActivatedRoute?) 以仅替换与客户 id 相关的 url 的一部分(paramMap 具有“customer”),同时保持 url 的其余部分原样?