处理 Ember 数据 JSON-API 适配器不工作的错误

Handling errors with Ember Data JSON-API adapter not working

我在使用 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 标志是 false, user.get('errors') -> empty

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

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

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

至于 isError 标志,如果您遇到验证错误(具有 422 代码的那个),则它不应该是 truedocs.

中对此进行了描述

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

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

获得此 属性 的错误

希望对您有所帮助!