使用RESTSerializer处理错误

时间:2016-06-27 18:02:56

标签: ember.js error-handling ember-data

使用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()返回一个空数组而不是我在JSON中返回的错误。

1 个答案:

答案 0 :(得分:1)

即使我没有按照json-api传递数据,pointer仍然必须像我一样被设置:

{
    "errors": [{
        "code": null,
        "detail": "may not be null",
        "status": null,
        "title": null,
        "source": {
            "pointer": "/data/attributes/name",
            "parameter": null
        }
    }]
}