我有一个文件夹models
用于模型文件。每个文件包含一个模型。模型之间有很多关系(hasMany,belongsTo)。如果我想设置hasMany关系,那么我需要定义子模型,否则我会收到错误:
Error: assertion failed: The first argument DS.belongsTo must be a model type or string, like DS.belongsTo(App.Person)
因为模型(上例中的App.Person)尚未定义。
以下是关系定义之一:
App.Seat = DS.Model.extend( number: DS.attr('number') tour: DS.belongsTo(App.Tour) )
模型文件夹包含如下:
//= require_tree ./models
我知道在一个文件中定义所有模型(或至少彼此之间存在关系)的解决方案。
问题:是否有其他解决方案可以将所有模型保存在单独的文件中?
答案 0 :(得分:1)
我找到了一个非常简单的解决方案:将所有关系定义为不是对象(例如App.Tour
):
App.Seat = DS.Model.extend(
number: DS.attr('number')
tour: DS.belongsTo(App.Tour) # <<<<<<<<<<<============ ***here***
)
但是作为字符串(例如"App.Tour"
),所以只需将其放在引号中:
App.Seat = DS.Model.extend(
number: DS.attr('number')
tour: DS.belongsTo("App.Tour") # <<<<<<<<<<<============ ***here***
)
我认为这种“解决方法”是因为javascript限制。
更新:ember.js使用字符串首选