как перенаправить на компонент ошибки, когда служба дает ошибку? - PullRequest
0 голосов
/ 27 августа 2018

Не могли бы вы сказать мне, как перенаправить на компонент, когда служба дает ошибку? В моем приложении я запрашиваю службу, я хочу, если я получаю какую-либо ошибку какой-либо службы, она будет отображать компонент ошибки

Вот мойкод

https://stackblitz.com/edit/angular-ctwnid?file=src%2Fapp%2Ftest.service.ts

В моем текущем примере я использую resolver для получения данных.

const routes: Routes = [
  {
    path: 'home', 
    component: HelloComponent,
    resolve: { data: TestResolver }

  },
  {
    path: 'error',
    component: ErrorComponent
  },
  {
    path: '', 
    redirectTo: '/home', 
    pathMatch: 'full'
  }
];

Я изменил requested url, чтобы получитьошибка

правильный URL-адрес: https://jsonplaceholder.typicode.com/todos/1 неправильный URL-адрес: https://jsonplaceholder.typicode.com/todoss/1

Я хочу, чтобы при получении ошибки он перенаправлялся на Errorcomponent.

@Injectable()
export class TestResolver implements Resolve<Observable<string>> {
  constructor(private testService: TestService) {}

  resolve(): Observable<any> {
    return this.testService.getConfiguration();
  }
}

любойобновить?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Вы можете справиться с этим в ваших component.ts

При каждом сбое вызова API просто используйте

this._service.function().subscribe(success => {
.....
},
error => {
this.router.navigate['error'];
});

там, где вы вызываете свою службу.

0 голосов
/ 27 августа 2018

У вас есть несколько вариантов.Вы могли бы использовать Guard для этого, но поскольку он основан на разрешенных данных, было бы неплохо сделать его перехватчиком.Вот пост, который должен указать вам правильное направление: перехватчики Использование маршрутизатора в сервисах в Angular 4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...