Угловой материал dialogRef.afterClosed (). Подписаться не обрабатывать ошибки - PullRequest
1 голос
/ 16 октября 2019

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

dialogRef.afterClosed().subscribe(result => {

// calling the ws 
 this.reqService.onRequestSave(this.request).subscribe(data =>{

    // do some work
  },err=>{
      // never displayed
      alert(err)
   }
)

},error=>{
     // never displayed
     alert(error)
} 
);

// Отдых клиента

 onRequestSave(request : RequestDto){
        console.log(JSON.stringify(request))
        return this.http.post<RequestResponseDto>(this.apiUrl + "/request",JSON.stringify(request),this.utils.getHeaders());
    }

Я хочу отобразить первое предупреждение любой идеи, как это исправить, спасибо за любую помощь

1 Ответ

1 голос
/ 16 октября 2019

Почему вы пытаетесь вызвать службу в родительском компоненте. Вместо того, чтобы нажать кнопку подтверждения, у вас может быть метод, который вызывает службу, и, если вызов успешно завершен, закройте диалоговое окно и, если есть ошибка, отобразите ошибку.

Возможно, что-то вроде этого.

В компоненте диалога: -

onConfirmation(){
  this.reqService.onRequestSave(this.request).subscribe(
    data  => { this.dialog.close(data); },
    error => { alert(error); }
}

и в родительском компоненте: -

dialog.afterClosed().subscribe(result => {
  this._snackbar.open("Request successfully saved.");
});
...