2014-07-24 2 views
1

Ember Cli는 Ember가 일반적으로 수행해야하는 방식으로 관계형 데이터 (relationshipsTo 및 hasMany)와 작동하지 않습니다. 작동 시키려면 RSVP 해시를 사용하고 컨트롤러에서 모델을 수동으로 설정하십시오.Ember Cli에서 RSVP 해시의 모든 데이터를 강제로로드하십시오.

export default Ember.Route.extend({ 

    model: function(params) { 
    return Em.RSVP.hash({ 
     traits: this.store.find('trait'), 
     person: this.store.find('person', params.person_id) 
    }); 
    }, 

    setupController: function(controller, model) { 
    controller.set('model', model.person); 
    } 
}); 

이것은 주어진 ID와 그의 특성을 가진 사람을 얻습니다. 이 경우 사람은 두 개의 특성 만 할당되므로 두 개의 데이터 개체 만 반환됩니다.

이 경로에서이 사용자의 특성을 변경할 수있는 기능을 제공한다고 가정 해 보겠습니다. 그래서 모든 특징을 체크 박스로 표시하고 싶습니다. 위 경로에서 어떻게 두 가지가 아니라 모든 특성을 얻도록 요청합니까?

나는 store.all()을 시도했지만 로컬 데이터 만 필터링합니다. 데이터가 없으므로 0 개의 객체를 반환합니다.

+0

해시에는 사용자에게 할당 된 특성뿐만 아니라 person_id 및 ** all ** 특성으로 제공된 사용자가 포함되어야합니다. – Oliver

답변

3

Ember-cli는 프로젝트 구조를 설정하고 구축하는 데 도움이됩니다. 그것은 다른 Ember을 실행하지 않습니다. 템플리트 나 컨트롤러에있는 모든 특성을 원하면 가져온 후에 실제로 추적해야합니다.

export default Ember.Route.extend({ 

    model: function(params) { 
    return Em.RSVP.hash({ 
     traits: this.store.find('trait'), 
     person: this.store.find('person', params.person_id) 
    }); 
    }, 

    setupController: function(controller, model) { 
    controller.set('model', model.person); 
    controller.set('allTraits', model.traits); 
    } 
});