2013-02-14 4 views
0

나는 간단한 메시지 응용 프로그램에 대한 다음과 같은 데이터 구조를 가지고 :Ember.js 상위/하위 관계

App.Message = DS.Model.extend({ 
    title: DS.attr("string"), 
    body: DS.attr("string"), 
    isRead: DS.attr("boolean"), 
    replyTo: DS.belongsTo("App.Message") 
}); 

App.Message.FIXTURES = [{ 
    id: "1", 
    title: "Eos ut amet persius, ea ius nibh iudico", 
    body: "Lorem ipsum dolor sit amet, nam et hinc doctus alienum, in vel latine conceptam.", 
    isRead: true, 
    replyTo: null 
}, 
{ 
    id: "2", 
    title: "Ad est dolor veniam delenit.", 
    body: "Lorem ipsum dolor sit amet, nam et hinc doctus alienum, in vel latine conceptam.", 
    isRead: false, 
    replyTo: "1" 
}, 
{ 
    id: "3", 
    title: "Eu nec summo placerat reprehendunt.", 
    body: "Lorem ipsum dolor sit amet, nam et hinc doctus alienum, in vel latine conceptam. Tale eirmod omittantur sit ne. Minim noster philosophia per eu, mel putent veritus an, ex veniam ubique consulatu has. At stet diceret repudiare ius, probo liber diceret no est. Ridens efficiantur vim te.", 
    isRead: false, 
    replyTo: "1" 
}]; 

내가이 선택 될 때 메시지에 응답을 표시하려고하지만 아무것도 표시되지 않습니다를. 메시지 제목과 본문 으로 표시되어 있으므로 내 경로, 컨트롤러 및 템플릿이 상위 항목에 대해 올바르게 설정되었음을 알 수 있습니다.

<script type="text/x-handlebars" data-template-name="message">  
    <h2>{{ title }}</h2>   
    <p>{{ body }}</p> 
    {{ render "messageResponses" responses }} 
</script> 

<script type="text/x-handlebars" data-template-name="messageResponses"> 
    {{#each responses}} 
    <p>{{ body }}</p> 
    {{/each}} 
</script> 

그리고 내 메시지 컨트롤러 (아마 잘못하고있어 일부) :

App.MessageController = Ember.ObjectController.extend({ 
    responses: function() { 
    return App.Message.find({ replyTo: this.get("id")); 
    } 
}); 

답변

1

대신 findProperty을 시도 여기

는 (간결함을 제거 거의 모든 마크 업) 내 템플릿입니다 :

App.MessageController = Ember.ObjectController.extend({ 
    responses: function() { 
    return App.Message.findProperty('replyTo', this.get("id")); 
    } 
}); 
+0

불행히도 그게 아닙니다. 실제로 작동하는지 알지 못하는'App.Message.find()'를 시도하고 있습니다. – Terry

+0

다음은이 모델을 가지고 있다고 가정 해 보겠습니다.'messageModel.get ('replyTo');'? 응답 메시지를 보내 주셔야합니다. – Wildhoney