Serviço de notificação
Outra opção para exibição dos erros de validação do servidor é configurar um serviço de notificação da aplicação para exibição de tais erros.
Para exemplificar tomaremos como base o serviço de notificação apresentado aqui: Configurando e adicionando um serviço de notificação
Adicionaremos a subscrição para que sejamos avisados toda vez que ocorrer um erro de validação no servidor, e no tratamento, exibiremos a mensagem de erro:
import { Injectable } from '@angular/core';
import { ToastsManager } from 'ng2-toastr/ng2-toastr';
import { Http } from '@angular/http';
import { Subscription } from 'rxjs/Subscription';
@Injectable()
export class NotificationService {
validationSubscription: Subscription;
constructor(private toastr: ToastsManager, private http: Http, private exceptionService: ExceptionService) {
this.validationSubscription = this.exceptionService.validation$.subscribe(
error => this.showValidationErrors(error)
);
}
showValidationErrors(errors: any) {
for (let error of errors) {
this.error('Erro de validação! Campo: ' + error.error_field + ' , Descrição: ' + error.error_description);
}
}
success(text: string) {
this.toastr.success(text);
}
error(text: string) {
this.toastr.error(text);
}
info(text: string) {
this.toastr.info(text);
}
warning(text: string) {
this.toastr.warning(text);
}
}