使用JSONAPI处理Ember模型错误

时间:2016-10-04 19:11:05

标签: ember.js json-api

这是MOST部分的答案: Handling errors with the (now default) Ember Data JSON-API adapter

我甚至不会介绍Ember docs如何强调遵循JSON API规范(http://jsonapi.org/format/),但据我所知,他们甚至不遵守它们(基于与之相关的答案)以上)...但我离题了!

我不确定如何从model()钩子本身将错误输入到我的模型中。

例如:

import Ember from 'ember';

export default Ember.Route.extend({
    model() {
        return this.get('store').findAll('page').catch(function(){});
    }
});

我无法访问模板中的错误:

{{#each model.errors as |error|}}
    <div class="error msg_animate">{{{error.message}}}</div>
{{/each}}

我知道我错过了一个关键因素。 有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

错误响应应遵循标准JSON API格式

http://jsonapi.org/format/#errors

样本格式,

{
  "errors": [
    {
      "status": "Error status",
      "code": 500,
      "message":"error message",
      "detail": "Some generic non property error message",
      "source": {
        "pointer": "data"
      }
    }
  ]
}

最重要的是,你需要为Promise包含错误函数回调, 样品,

model() {
 return this.get('store').findAll('page').then(
     function(result){return result;},
     function(errors){ return errors; });
 }