我在使用JSON-API处理错误时遇到了问题,我做了所有的步骤,就像在文档中写的一样,但它不起作用。
我有一个模型:
var user = this.get('store').createRecord('user', {
'email': 'test@test.com',
'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
});和接口响应(422 Unprocessable Entity):
{
"errors":[
{
"detail":"Email address must be between 6 and 128 characters in length",
"source":{
"pointer":"/data/attributes/password"
}
}
]
}在本例中,isError标志为false,user.get('errors') -> empty
我还尝试了使用500 Internal Server Error代码进行响应
在这种情况下,isError标志是true (正如预期),且错误对象包含在adapterError中
所以,我做错了什么,或者试着检查一下,提前谢谢
发布于 2016-09-09 03:55:04
至于isError标志,如果你得到了验证错误(有422代码的那个),它就不应该是true。它在docs中进行了描述。
你的主要问题是在开头有一个多余的正斜杠。因此您必须将此"pointer":"/data/attributes/password"更改为此"pointer":"data/attributes/password"
完成此更改后,您将能够通过user.get('errors.password');获取此属性的错误
希望它能帮上忙!
https://stackoverflow.com/questions/39395838
复制相似问题