4

我正在将一个项目从 Backbone (w/ Backbone Relational for ORM) 转换为 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 都必须有一个父级(除非你有无限循环引用,否则这种关系是不可避免的。

谢谢!史蒂夫

4

1 回答 1

0

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

App.Box = DS.Model.extend([
  parent: DS.belongsTo('App.Box')
});
于 2013-04-14T16:08:18.000 回答