【问题标题】:Ember embedded object repeatedEmber 嵌入对象重复
【发布时间】:2015-08-20 15:56:35
【问题描述】:

在 Ember 中,我有一个模型,它具有嵌入的子对象,包括 belongsTo 和 hasMany。我正在使用 Ember Data 支持 Rails API,并使用 Active Model Serializer。对象的设置是 -

Application.Release = DS.Model.extend({
    title: DS.attr(),
    ...
    label: DS.belongsTo('label'),
    artists: DS.hasMany('artist')
});

Application.ReleaseSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
        label: { embedded: 'always' },
        artists: { embedded: 'always' }
    } 
});

Application.Label = DS.Model.extend({
    name: DS.attr(),
    release: DS.belongsTo('release')
});

Application.Artist = DS.Model.extend({
    name: DS.attr(),
    release: DS.belongsTo('release')
});

这就是全面的发现和工作。

我的问题出现在发布索引上,列出所有发布。当一个艺术家或标签用于多个版本时,它只包含在所有版本的最终版本中,从以前的对象中丢失。例如 -

Title          Artist        Label

Release 1      Artist 1      Label 1
Release 2                  
Release 3      Artist 2      Label 2

Release 2 的 JSON 按预期包含 Artist 2 和 Label 2,但 Ember 对象中缺少。

我是否遗漏了有关 Ember 如何看待这些对象的重要信息?如何确保它们包含在 JSON 中反映的每个对象中?

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    这是因为您的artist 不能发布多个版本。你应该改变

    Application.Artist = DS.Model.extend({
        name: DS.attr(),
        release: DS.belongsTo('release')
    });
    

    Application.Artist = DS.Model.extend({
        name: DS.attr(),
        release: DS.hasMany('release')
    });
    

    label也一样

    【讨论】:

    • 当然,那里的树木看不到树林。感谢您的帮助!
    猜你喜欢
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2019-07-26
    相关资源
    最近更新 更多