【问题标题】:One way relationship in Ember Data?Ember Data 中的单向关系?
【发布时间】:2013-10-12 13:13:12
【问题描述】:

我需要想办法在 Ember Data 中建立单向关系。到目前为止,我只是将关系放在一个模型中,而且效果很好。问题是模型 B 被删除时模型 A 变得脏,即使模型 A 完全没有模型 B 的概念。我怎样才能让模型 B 指向模型 A,并使 A 完全忽略这种关系?我不介意声明 A 类中的关系具有适当的逆,我只是不希望 A 类型的模型在关系发生变化时变脏。

另外,仅供参考,我使用的是相当旧的 Ember 版本。我正在使用 Ember.js RC7 和从 8 月 26 日开始构建的 Ember Data。在你问之前,不,我没有升级。

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    找了几个小时,终于在Ember Data的源码中找到了答案。我找到了这个小sn-p:

    DS.OneToManyChange = {};
    DS.OneToNoneChange = {};
    DS.ManyToNoneChange = {};
    DS.OneToOneChange = {};
    DS.ManyToManyChange = {};
    

    然后,我进行了更多浏览,发现一对无和多对无关系是通过显式设置逆为 null 来定义的。所以这条小线成功了:

    owner: DS.belongsTo('A', { inverse: null })
    

    【讨论】:

    • 哇。这对我帮助很大!我有一个多对一的关系,在多方面只定义为my-...。比如说Post 有很多 cmets,Comment 有一个属于它的帖子。我没有定义许多 cmets(我从不想从帖子中获取所有 cmets),而是将 myComment 定义为表示 currentUser 对帖子的评论的评论的 belongsTo 关系。如果没有显式的 null 反向 Ember 将错误地将其与 Comments 上的 belongsTo 匹配!
    猜你喜欢
    • 1970-01-01
    • 2014-12-10
    • 2015-08-15
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多