0

js-data-http 中的find 方法似乎有一种特殊情况,如果itemfalse则它将拒绝承诺,否则返回item。我的问题是一些虚假值(0, null, '')是来自我的 API 的有效响应。

例如,如果我要求一个尚未设置的关系,那么 API 会以null包装在 jsonapi 信封中的数据进行响应。这遵循用于获取空关系的jsonapi 规范:

{
  "links": {
    "self": "/articles/1/relationships/author",
    "related": "/articles/1/author"
  },
  "data": null
}

我正在使用js-data-jsonapi库来帮助 js-data 和 jsonapi 相处。在该库中,DeSerializer解开 jsonapi 信封。此时 js-data 重新负责,解包后的数据null是 find promise resolve 方法中的值,item这会导致 js-data-http 拒绝 promise。

现在我正在利用js-data-jsonapi 中的一个特殊情况将空数据反序列化为一个数组,因为在 JS 数组中是真实的。但是我必须对 hasOne 关系的检测进行特殊处理,现在必须将空数组重新转换为 null

这似乎是一种过于复杂的处理方式,我错过了更好的方法吗?

我的设置使用:

"angular": "1.5.8",
"js-data": "2.9.0",
"js-data-angular": "3.2.1",
"js-data-jsonapi": "0.0.0-alpha.21",
4

0 回答 0