【问题标题】:How do you get Ember Data to recognize that the server is returning IDs for hasMany relationships?如何让 Ember Data 识别服务器正在为 hasMany 关系返回 ID?
【发布时间】:2013-10-07 01:53:12
【问题描述】:

我的服务器返回如下所示的 JSON 响应:

{
  'book': {
    'id': 252,
    'name': 'The Hobbit',
    'tag_ids': [1, 2, 3, 5, 6, 7]
   }
}

我正在使用 Ember Data 的 DS.RESTSerializer,我已对其进行了扩展以包含一个 keyForRelationship 函数,该函数可识别以 "_ids" 结尾的键确实有很多关系。因此,上面的代码应该与我的模型代码匹配得很好,如下所示:

App.Book = DS.Model.extend({
    name: DS.attr('string'),
    tags: DS.hasMany('tag')
});

问题在于,每当我创建一本新书并且服务器返回其 JSON 响应时,Ember Data 的存储就会出错。它无法将 ID 转换为实际的 tag 实例。相反,模型上的 tags 属性实际上设置为 ID 数组。

有什么想法吗?

【问题讨论】:

  • 您是否尝试过将tags 定义为异步,例如:DS.hasMany('tag', {async: true})
  • 是的,试过了,没有真正的成功。看起来正确的答案是使用新的 DS.ActiveModelAdapter 而不是 DS.RESTAdapter

标签: json ember.js ember-data


【解决方案1】:

您应该考虑使用DS.ActiveModelAdapter 而不是DS.RESTAdapter。另见https://stackoverflow.com/a/19209194/1345947

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多