解決に失敗した場合はリダイレクトする Angular 2 質問する

解決に失敗した場合はリダイレクトする Angular 2 質問する

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);
            });
    }});

ベストアンサー1

と同じようにドキュメント内、呼び出しthis.router.navigate(["url"])...(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;
      }));
  }
}

おすすめ記事