与同一对象的其他实例有关系的对象的Ember-Data关系

时间:2012-12-05 22:49:43

标签: ember.js requirejs ember-data

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

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

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

我想在Ember中为客户端操作等重新创建这个结构。

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

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

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

对当前类定义的引用不太可能有效。在Django中,这种关系是用“自我”的特殊目标来处理的,但我在Ember中找不到任何等效的解决方案。非常感谢任何帮助。

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

谢谢! 史蒂夫

1 个答案:

答案 0 :(得分:0)

您需要在引号周围包装模型名称以使用未初始化的模型名称。

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