Ember 응용 프로그램에서 서버 측 오류를 처리하는 동안 모델에 수신 된 오류가 채워지지 않으므로 템플릿에 오류를 표시 할 수 없습니다. 사용Ember 모델에서 RESTAdapter가있는 서버 측 오류가 채워지지 않았습니다.
버전 :
엠버-CLI : 2.4.3
엠버 데이터 : 2.4.2
어댑터 : RESTAdapter
이 템플릿 파일이 표시 업 표시로 사용자의 양식을 포함
register: function(){
var username = this.controller.get('username');
var email = this.controller.get('email');
var user = this.store.createRecord('user',{
email: email,
username: username
});
user.save().then(function(){
//handle success
},function(error){
//handle error
});
});
:
{{input type="text" value=username }}
{{#each model.errors.username as |error|}}
{{error.message}}
{{/each}}
{{input type="text" value=email }}
<button {{action 'register'}}>Register</button>
는 루트 파일은 활동 사용자를 저장하려면 '등록'을 포함 DS.Errors 오류의 문서에 따르면
이{
"errors":[
{
"detail":"can't be blank",
"source":{
"pointer": "/data/attributes/username"
}
}
]
}
자신의 속성에 액세스하여 표시 할 수 있습니다 같이 나는 상태 422 오류 응답을 사용하고
export default Model.extend({
email: attr(),
username: attr()
});
이 API : 같은
모델 본다 name : 해당 속성에 대한 모든 오류 객체의 배열을 가져옵니다. 그리고 그것이 제가 템플릿 파일에서하려고하는 것입니다.
또한 오류 개체의 메시지 속성에 액세스하지 못했습니다. 나는 오류가
user.save().then(function(){
//handle success
},function(error){
//handle error
console.log(user.get('errors.length'));
});
을 즉시 콘솔에 길이 속성을 로그온 할 때
{{#each model.errors.messages as |message|}}
{{message}}
{{/each}}
항상 여전히 오류를 0 그러나
console.log(user.get('errors.username.length'));
원하는 출력을 제공 나에게 제공하지만, 템플릿에 표시되지 않습니다.
이 게시물 24027053에서 언급했듯이 RESTAdapter에서 ajaxError를 무시하려고했지만 행운은 없습니다.
내가 뭘 잘못하고 있는지 모르겠다. 도와주세요! 따라서이 오류가없는,
user.save().then(function(){
//handle success
},function(error){
//handle error
console.log(user.get('errors.length'));
});
사용자가 저장되지 않습니다
나는 기본을 무시하고 있지 않다 통해 오류를 액세스 할 수 실제로는 기본 동작을 구현할 수 없습니다. 내 질문에 두 번 언급했듯이 문제는 템플릿에 오류를 표시하는 것입니다. console.log (user.get ('errors.username'))); error.errors가 원하는 결과를 가져옵니다. 그러나 템플릿에 표시 할 수는 없습니다. model.errors.username, model.errors 또는 단순히 errors.username은 아무 것도 표시하지 않습니다. –