如果响应不包含关系,如何获取与Ember模型的关系?

时间:2013-08-09 09:01:34

标签: ember.js ember-model

似乎Ember Model期望两件事之一,JSON响应中的关系键包含(1)记录数据或(2)记录的ID。我正在使用的API(我无法控制)也不提供。它只返回一个空数组,表明可以拥有comments。我为/posts/1的调用粘贴了一个示例JSON响应。

{
  id: 1,
  title: "Hello World",
  comments: []
}

评论的API终结点为/posts/1/comments。使用Ember模型,如何获取帖子的评论? 当关系为“空”(没有提供数据或ID)时,这不仅是一个问题,而且还有深层嵌套的模型层次结构。 Ember Model的url属性需要(1)一个或多个动态段和(2)在为查询构建URL时用数据替换这些动态段的能力。

我目前正在使用的结构(镜像我正在使用的API)看起来像/series/:serie_id/seasons/:season_id/episodes/:episode_id。我认为期望API返回一个或多个系列的整个数据树是不合理的。

1 个答案:

答案 0 :(得分:0)

您可以在帖子模型上使用计算属性,然后编写自定义适配器以发布帖子。

App.Post = Ember.Model.extend({
  comment_ids: attr(),
  comments: function() {
    return App.Comment.find(this.get("comment_ids"); 
  }.property('comment_ids.[]')
})