使用Backbone Relational来处理JSON-API数据

时间:2015-06-02 19:55:31

标签: json backbone.js backbone-model backbone-relational

我们一直在使用 Backbone Relational 来模拟前端的ORM关系,例如:

{
  id: 2
  username: "bob"
  comments: [
     {
        id:5,
        comment: "hi",
        user: {
           username: 'Bob'
        }
     }

  ]
}

在前端使用这样的模型一直很有效:

  class User extends App.RelationalModel
    relations: [{
      type: Backbone.HasMany,
      key: 'comments',
      relatedModel: 'Comment',
      collectionType: 'CommentCollection'
    }]

但是现在我们的api已经改变并尊重更多 JSON-API Spec ,因此来自后端的数据被封装在'数据中。

{
  data: {
    id: 2
    username: "bob"
    data: {
      comments: [
         {
            id:5,
            comment: "hi",
            user: {
               username: 'Bob'
            }
         }
      ]
    },
    meta: {
    }
  }
}

我们如何指示骨干关系获取“评论”的数据?来自.data的关系,而不是直接映射json结构?

对于'类用户''我们可以实现像这样的解析方法

class User
  parse: (response) ->
    response.data

但是我们如何为评论关系做到这一点?

1 个答案:

答案 0 :(得分:0)

这是怎么回事?

parse: function (response) {
    var fixed_response = response.data;
    fixed_response.comments = fixed_response.data.comments;
    delete fixed_response.json.data;
    return fixed_response;
}