habe ich einen REST-API-Server mit dem PHP-Framework Symfony, dass diese Arten von Nachrichten zurück:Angular - FormGroup Anzeige json Fehler vom Server Ruhe Api
{
"code": 400,
"message": "Validation Failed",
"errors": {
"children": {
"email": {
"errors": [
"This address mail is already used."
]
},
"name": {
"errors": [
"This name is too short."
]
},
"password": []
}
}
}
Und auf der Vorderseite mit kantigem FormGroup habe ich diesen Code :
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { RegisterService } from './register.service';
@Component({
selector: 'app-authentication',
templateUrl: './authentication.component.html',
})
export class AuthenticationComponent {
loginForm: FormGroup;
error: string = '';
constructor(
private formBuilder: FormBuilder,
private registerService: RegisterService,
private router: Router
) {
this.loginForm = formBuilder.group({
'name': ['', Validators.required],
'email': ['', Validators.required],
'password': ['', Validators.required]
});
}
onSubmit() {
this.authenticationService
.authenticate(this.loginForm.value)
.subscribe(
data => {
localStorage.setItem('id_token', data.token);
this.router.navigate(['post']);
},
error
=>
// Do something
// Display server json errors in the corresponding fields
);
}
}
Wie kann ich jede Fehlermeldung von REST API erhalten und unter dem entsprechenden Feld anzeigen?
Vielen Dank für Ihre Hilfe
Ist das der genaue JSON? Wundern Sie sich nur über die doppelte 'name', welche andere ist ein leeres Array und andere ist ein Objekt ...? – Alex
Dieser JSON ist jetzt genau. Ich ändere den doppelten 'Namen' für 'Passwort' :). – kaneda
Okay, großartig. Aber Passwort ist ein Array wie das? Es sieht nicht so aus: '" password ": {" errors ": []}'? Frage nur, weil das wichtig ist, wenn wir diese Daten loopen wollen :) – Alex