我正在将一个项目从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都必须有父级(除非你有无限循环引用,否则这种关系是不可避免的。
谢谢! 史蒂夫
答案 0 :(得分:0)
您需要在引号周围包装模型名称以使用未初始化的模型名称。
App.Box = DS.Model.extend([
parent: DS.belongsTo('App.Box')
});