Emberjs是否支持单向关系?考虑一下我想用三种模型存储有关食谱的信息:
Ingredient
name
和description
。IngredientAddition
Ingredient
和添加成分的时间/数量和数量组成的信息IngredientAddition
个对象可以使用相同的成分。Recipe
IngredientAddition
个对象和辅助信息。据我所知,我的模型如下所示:
App.Ingredient = DS.Model.extend({
name: DS.attr('string'),
desc: DS.attr('string'),
});
App.IngredientAddition = DS.Model.extend({
how: DS.attr('string'),
qty: DS.attr('string'),
recipe: DS.belongsTo('App.Recipe'),
});
App.Recipe = DS.Model.extend({
desc: DS.attr('string'),
ingredients: DS.hasMany('App.IngredientAddition'),
});
但是,这并未捕获IngredientAddition
和Ingredient
之间的关系。 DS.hasMany
似乎不合适,因为每个IngredientAddition只有一个Ingredient
。 DS.belongsTo
不合适,因为Ingredient
生命周期不是由IngredientAddition
的存在(或缺乏)决定的。
如何捕获此信息?我查看了ember-data
来源,除了hasMany
和belongsTo
之外,我找不到任何关系类型。
答案 0 :(得分:0)
我认为您希望在belongsTo
上建立IngredientAddition
关系。
App.IngredientAddition = DS.Model.extend({
how: DS.attr('string'),
qty: DS.attr('string'),
ingredient: DS.belongsTo('App.Ingredient'),
recipe: DS.belongsTo('App.Recipe'),
});
这样,IngredientAddition
有一个基础ingredient_id
,指向相关的Ingredient
。 Ingredient
“拥有”一个IngredientAddition
的语义很奇怪,但这是产生你所描述的关系的方法。