Javascript 重定向路径取决于角度为2的解析器类

Javascript 重定向路径取决于角度为2的解析器类,javascript,angular,rxjs,observable,Javascript,Angular,Rxjs,Observable,我试图在slug与API不匹配时重定向用户 我的app.routes.ts { path: ':region-slug', component: RegionComponent, resolve: { region: RegionResolver } } 解析程序(region.resolver.ts): 如何处理错误以放置:this.router.navigate(['/'])以及我应该在哪里实现它(在解析器类no中)?Thx好的,重定向必须由

我试图在slug与API不匹配时重定向用户

我的app.routes.ts

{
    path: ':region-slug',
    component: RegionComponent,
    resolve: {
        region: RegionResolver
    }
}
解析程序(region.resolver.ts):


如何处理错误以放置:
this.router.navigate(['/'])以及我应该在哪里实现它(在解析器类no中)?Thx

好的,重定向必须由解析器完成。我在我的getRegion()之后添加了一个do运算器,如果区域未定义,它将重定向:
返回this.regionsService.getRegion(route.params['region-slug']).do(region=>{if(!region){this.router.navigate(['/');})
@Injectable()
export class RegionResolver implements Resolve<any>{

  constructor(private regionsService: RegionsService) { }

  resolve(route: ActivatedRouteSnapshot): Observable<any> {

    return this.regionsService.getRegion(route.params['region-slug']);
  }
}
@Injectable()
export class RegionsService {

  constructor(private router: Router) { }

  getRegion(slug: string) {

    return Observable.create(observer => {

      setTimeout(() => {
        observer
          .next(regions.find((region) => region.slug == slug))
          .complete();

      }, 1000);

    });
  }
}