Javascript 重定向路径取决于角度为2的解析器类
我试图在slug与API不匹配时重定向用户 我的app.routes.tsJavascript 重定向路径取决于角度为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好的,重定向必须由
{
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);
});
}
}