【问题标题】:Handling errors with Ember Data JSON-API adapter not working处理 Ember Data JSON-API 适配器不工作的错误
【发布时间】:2016-09-08 16:15:19
【问题描述】:

我在使用 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
  });

以及 API 响应 (422 Unprocessable Entity):

    {  
   "errors":[  
      {  
         "detail":"Email address must be between 6 and 128 characters in length",
         "source":{  
            "pointer":"/data/attributes/password"
         }
      }
   ]
   }

在这种情况下,isError 标志是falseuser.get('errors') -> empty

我也尝试使用500 Internal Server Error 代码回复

在这种情况下,isError 标志是 true(如预期的那样)并且错误对象包含在 adapterError

所以我做错了什么或试图检查什么, 提前致谢

【问题讨论】:

标签: ember.js ember-data


【解决方案1】:

至于isError 标志,如果您遇到验证错误(具有422 代码的错误),它不应该是true。在docs 中有描述。

您的主要问题是开头有多余的正斜杠。所以你必须把这个"pointer":"/data/attributes/password"改成这个"pointer":"data/attributes/password"

进行此更改后,您将能够通过user.get('errors.password'); 获取此属性的错误

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2015-07-20
    相关资源
    最近更新 更多