我想创建一个订阅 Angular 的 paramMap 更改的服务。不幸的是,这似乎不起作用。
export class LocationResourcesService {
constructor(private activatedRoute: ActivatedRoute) {
this.activatedRoute.paramMap.pipe(
map((params: ParamMap) => params.get('account-id')),
).subscribe((newValue) => console.log(newValue))
}
// ----------
}
上面的订阅只发出一个值——当 Angular 首次加载到页面中时。而那个值是null
。当它被放置在页面中活动的组件的构造函数中时,相同的订阅会发生。大概是因为路线已加载并且ActivatedRoute
已设置。
我会假设 ActivatedRoute 是一个单例服务,因此我可以订阅它的更改。显然情况并非如此,那么该服务如何订阅 的值activatedRoute.ParamMap
?