使用Ember Data JSON-API适配器处理错误无法正常工作

时间:2016-09-08 16:15:20

标签: ember.js ember-data

我遇到问题使用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

那么我做错了什么或试图检查什么, 提前谢谢

1 个答案:

答案 0 :(得分:1)

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

您的主要问题是您在开始时有一个冗余的正斜杠。因此,您必须将此"pointer":"/data/attributes/password"更改为此"pointer":"data/attributes/password"

完成此更改后,您将能够通过user.get('errors.password');

获取此媒体资源的错误

希望它有所帮助!