【问题标题】:Ember-Data relationship for objects that have relationships to other instances of the same object与同一对象的其他实例有关系的对象的 Ember-Data 关系
【发布时间】:2012-11-23 21:53:29
【问题描述】:

我正在将一个项目从 Backbone(带 ORM 的 Backbone Relational)转换为 Ember,但我在文档中找不到如何使用 DS.belongsTo 引用相同类型对象的示例。

换句话说,我有以下模型定义(为了清楚起见,通用伪代码)。

BoxModel
  Text = String
  BoxParent = BoxModel (referenced by id)

我想在 Ember 中重新创建此结构以进行客户端操作等。

我也在使用 requirejs,所以我的 DS.belongsTo 的所有对象目标都必须包含在定义语句中,并作为匿名函数的参数提供。

因此,我怀疑我可以使用这样的东西:

define ([ 'textbox'  ]), function(TextBox) {
  return DS.Model.extend({
    BoxParent: DS.belongsTo(TextBox)
   });
});

对当前类定义的引用不太可能起作用。在 Django 中,这种类型的关系是使用“self”的特殊目标来处理的,但我在 Ember 中找不到任何等效的解决方案。任何帮助将不胜感激。

最后一点,这种关系也可以为空,因为并非所有 TextBox 都必须有父级(这种关系是不可避免的,除非你有无限循环引用。

谢谢! 史蒂夫

【问题讨论】:

  • 大家好,我想把它放在这里,因为我发现它非常有用且简洁,可以回答我的问题。我还没有在我自己的项目中实现它来验证它是否有效,所以我会暂时不回答这个问题,以防人们想添加到讨论中。 stackoverflow.com/questions/13727512/self-join-with-ember-data

标签: ember.js requirejs ember-data


【解决方案1】:

您需要将模型名称用引号括起来以使用未初始化的模型名称。

App.Box = DS.Model.extend([
  parent: DS.belongsTo('App.Box')
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-10
    • 2015-06-03
    • 2013-03-15
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多