0

我有以下路线配置:

{
    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)
)

但也许我只是做错了。

4

0 回答 0