2013-03-06 4 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은 적절하지 않습니다. 각 IngredientAddition에는 정확히 Ingredient이 하나 있기 때문입니다. DS.belongsToIngredient 수명주기가 IngredientAddition의 존재 (또는 그 부족)에 의해 결정되지 않기 때문에 적절하지 않습니다.

어떻게이 정보를 캡처합니까? ember-data 소스를 살펴본 결과 hasManybelongsTo 이외의 관계 유형을 찾을 수 없습니다.

답변

0

IngredientAdditionbelongsTo 관계가 필요하다고 생각합니다.

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를 가리키는 기본 ingredient_id 있습니다. 의 "소유"의미는 IngredientAddition이지만 이상하게 묘사 한 관계를 생성하는 방법입니다.

+0

Ember가 참조를 관리하는 방법을 살펴본 결과 '성분'이 변경되면 'IngredientAddition'객체가 업데이트되지 않는 것으로 보입니다. 바인딩은 일방적 인 것처럼 보입니다. –