2013-03-06 60 views
0

Emberjs支持單向關係嗎?想想看,我想存儲有關的食譜信息有三種模式:Emberjs多對一單向關係

  • Ingredient
    • 始終存在。給出namedescription
    • 沒有「擁有」一種成分,也不應該在新引用時被複制,或者在引用被銷燬時被銷燬。他們只是
  • IngredientAddition
    • 由時/誰添加的成分和數量
    • 很多IngredientAddition對象可以使用相同成分的一個Ingredient和信息。
  • 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'), 
}); 

然而,這並不能捕捉IngredientAdditionIngredient之間的關係。 DS.hasMany似乎並不合適,因爲每種添加成分只有一個IngredientDS.belongsTo不合適,因爲Ingredient的生命週期不是由IngredientAddition的存在(或缺少)決定的。

如何捕獲此信息?我查看了ember-data來源,除hasManybelongsTo之外,我找不到任何關係類型。

回答

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指向相關IngredientIngredient「擁有」IngredientAddition的語義很奇怪,但這是產生你所描述的關係的方法。

+0

從查看Ember如何管理參考文獻,當Ingredient改變時,不會出現「IngredientAddition」對象將被更新。綁定看起來像是單向的。 – 2013-03-08 00:09:12