使用 RESTSerializer 处理错误
Handling Errors with RESTSerializer
使用 ember 和 ember-data 2.6 版本,我试图让错误处理正常工作,但 运行 遇到问题。我正在使用 RESTSerializer
并将以下有效负载发送到我的服务器:
{
"brand": {
"name": null,
"description": null,
}
}]
由于 name
不能为空,这就是我发回的回复:
{
"errors": [{
"code": null,
"detail": "may not be null",
"status": null,
"title": null,
"source": {
"pointer": "brand/name",
"parameter": null
}
}]
}
在我的路线中,我在失败时保存承诺中执行以下操作:
console.log(savedBrand.get('isValid')); // logs false
console.log(savedBrand.get('errors').toArray()); // logs [ ]
似乎没有很多关于这一切如何工作的详细文档,所以我使用 this article 作为起点。我不确定为什么 toArray()
returns 是一个空数组而不是我在 JSON.
中返回的错误
即使我没有按照 json-api 传递数据,pointer
仍然必须设置为:
{
"errors": [{
"code": null,
"detail": "may not be null",
"status": null,
"title": null,
"source": {
"pointer": "/data/attributes/name",
"parameter": null
}
}]
}
使用 ember 和 ember-data 2.6 版本,我试图让错误处理正常工作,但 运行 遇到问题。我正在使用 RESTSerializer
并将以下有效负载发送到我的服务器:
{
"brand": {
"name": null,
"description": null,
}
}]
由于 name
不能为空,这就是我发回的回复:
{
"errors": [{
"code": null,
"detail": "may not be null",
"status": null,
"title": null,
"source": {
"pointer": "brand/name",
"parameter": null
}
}]
}
在我的路线中,我在失败时保存承诺中执行以下操作:
console.log(savedBrand.get('isValid')); // logs false
console.log(savedBrand.get('errors').toArray()); // logs [ ]
似乎没有很多关于这一切如何工作的详细文档,所以我使用 this article 作为起点。我不确定为什么 toArray()
returns 是一个空数组而不是我在 JSON.
即使我没有按照 json-api 传递数据,pointer
仍然必须设置为:
{
"errors": [{
"code": null,
"detail": "may not be null",
"status": null,
"title": null,
"source": {
"pointer": "/data/attributes/name",
"parameter": null
}
}]
}