Angular Route仅针对不同的值进行解析

时间:2018-03-28 23:35:42

标签: angular angular5 angular-router angular-resolver

我有以下路线配置:

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

但也许我做错了。

0 个答案:

没有答案