我有以下路线配置:
{
path: ':id',
component: MyComponent,
resolve: {
data: MyResolver
}
}
解析器只需执行HTTP调用即可获取一些数据:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Artist> {
return this.service.getData(route.params.id);
}
组件包含一些选项卡,并具有一些功能来相应地设置/更改矩阵参数。
http://.../#/123
http://.../#/123;tab=foo
当用户现在手动更改URL时,解析器将再次运行。当他改变:id
时,这是可以的。 但是当他只更改tab
参数时,它不应该发生。
知道怎么做吗?
我考虑过将一些distinctUntilChanged
添加到解析器中,但我无法使其正常工作。类似的东西:
return of(route.params.id).pipe(
distinctUntilChanged(),
switchMap(val => this.service.getData(val)
)
但也许我做错了。