使用 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
        }
    }]
}