angular - 如果 Resolve 失败 Angular 2 重定向

标签 angular angular2-routing

如果在 Angular 2 中解析失败,我如何重定向到另一个页面? 我为我的编辑页面调用此解析,但我想处理解析页面中的错误

我的决心:

 resolve(route: ActivatedRouteSnapshot): Promise<any>|boolean {

        return new Promise((resolve, reject) => {

            if (route.params['id'] !== undefined) {
                this.dataService.getHttpEmpresaShow(this.endpoint_url_Get + route.params['id'])
                    .subscribe(
                     result => {                    
                            console.log("ok");
                            return resolve(result);                     
                    },
                    error => {
                return resolve(error);
            });
    }});

最佳答案

就像in the docs ,调用 this.router.navigate(["url"])...(考虑在构造函数中注入(inject) Router)

class MyResolve {

  constructor(private router: Router) {}

  resolve(route: ActivatedRouteSnapshot): Observable <any> {
    return this.dataService.getHttpEmpresaShow(this.endpoint_url_Get + route.params['id'])
      .pipe(catchError(err => {
        this.router.navigate(["/404"]);
        return EMPTY;
      }));
  }
}

关于angular - 如果 Resolve 失败 Angular 2 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43097103/

相关文章:

html - Angular 2 : Access play and pause of html5 video tag inside component

Angular 2 : "router.navigate" Encoding error in the URL

html - 如何在 angular2 中使用一个 routerLink 触发多个导出(2.1.1)

Angular 性能跟踪

angular - 在模块延迟加载时显示加载动画?

Angular 2 routerLinkActive 对于基本路径始终处于事件状态

angular 2 新路由器 : Back- and Forward-Button of Browser not working correctly

javascript - 在 Angular 模板的样式标签中使用变量?

angular - 运行 docker build 时 Npm run build 失败

Angular6 @ViewChild 未定义与 ngIf