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