2016-09-08 2 views
2

Ich habe ein Problem, Fehler mit JSON-API zu behandeln, habe ich alle Schritte wie in der Dokumentation geschrieben, aber es funktioniert nicht.Fehlerbehandlung mit Ember-Daten JSON-API-Adapter funktioniert nicht

Ich habe Modell:

var user = this.get('store').createRecord('user', { 
    'email': '[email protected]', 
    'name': 'Lorem ipsum', 
    'password': '123', 
    }); 

    user.save().then(function(){ 
    ... 
    }).catch(function(data){ 
    console.log(user.get('errors'), data); 
    // data is ErrorClass with deserialize errors inside 
    }); 

und API-Antwort-(422 Unprocessable Entity):

{ 
    "errors":[ 
     { 
     "detail":"Email address must be between 6 and 128 characters in length", 
     "source":{ 
      "pointer":"/data/attributes/password" 
     } 
     } 
    ] 
    } 

In diesem Fall isError Flagge false ist, user.get('errors') ->empty

Ich habe auch versucht Reaktion mit 500 Internal Server Error Code

In diesem Fall isError Flag true (wie erwartet) und Fehlerobjekt enthält in adapterError

Also, was ich falsch mache oder was versuchen zu überprüfen, Dank im Voraus

+0

http://stackoverflow.com/questions/36572090/how-to-display-error-message-in-ember-js-2-0/36721271#36721271 –

Antwort

1

Was die isError Flagge Es sollte nicht true sein, wenn Sie Validierungsfehler (der, der 422-Code hat) erhalten haben. Es ist in docs beschrieben.

Ihr Hauptproblem ist, dass Sie am Anfang einen redundanten Schrägstrich haben. Also muss man diese Nach dieser Änderung "pointer":"data/attributes/password"

diese "pointer":"/data/attributes/password" ändern können Sie die Fehler für diese Eigenschaft erhalten durch user.get('errors.password');

Hoffe, es hilft!

Verwandte Themen