2016-09-08 7 views
2

問題が発生しました。JSON-APIを使用してエラーを処理しました。ドキュメントに書かれているようなすべての手順を実行しましたが、動作しません。Ember Dataでエラーを処理するJSON-APIアダプタが動作しない

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 
    }); 

とAPI responce(422 Unprocessable Entity):

Iモデル有しこの場合

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

isErrorフラグがfalseuser.get('errors')ある - >empty

Iも有する応答を試し500 Internal Server Errorコード

isErrorフラグがtrueである。この場合には(予想通り)とエラーオブジェクトがadapterError

に含まれているので、私が間違ってやっているか、何をチェックしてみてください、isErrorフラグについては、事前

+0

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

答えて

1

で 感謝検証エラー(422コードを持つエラー)があれば、trueであってはなりません。それはdocsに記載されています。

あなたの主な問題は、最初に冗長スラッシュがあることです。だから、あなたは

user.get('errors.password');はそれが役に立てば幸いを通じてこのプロパティのエラーを取得することができますこの変更の後、この"pointer":"data/attributes/password"

にこの"pointer":"/data/attributes/password"を変更する必要があります!

関連する問題