2014-01-26 2 views
4

Iron Router를 사용하는 Meteor로 빌드 된 응용 프로그램이 있습니다. 내 레이아웃은 여러 개의 출력 템플릿을 사용하며 각각 다른 데이터를 전달하고 싶습니다.Meteor iron-router - 여러 데이터 소스를 사용할 수 있습니까?

성공적으로 tasks를 tasksList 템플릿으로 전달하지만 selectedTask를 통해 taskDetail 템플릿으로 전달하지 않습니다.

여러 개의 데이터 소스를 가질 수 있으며 이것이 올바른 방법인가요? 그리고 그렇다면 왜 작동하지 않는 것입니까? 사전에

감사합니다! :-)

Router.map(function() { 
this.route('tasksList', { 
    path: '/', 
    layoutTemplate: 'layout', 
    template: 'tasksList', 
    yieldTemplates: { 
     'taskDetail': {to: 'rightTemplate'} 
    }, 
    data: { 
     tasks: function(){ return Tasks.find() }, 
     selectedTask: function() { return Tasks.findOne() } 
    } 
}); 
}); 

<template name="layout"> 
    <section class="wrapper"> 
     <div class="left-pane"> 
      {{yield}} 
     </div> 
     <div class="right-pane"> 
      {{yield 'rightTemplate'}} 
     </div> 
    </section> 
</template> 

<template name="tasksList"> 
    <ul> 
     {{#each tasks}} 
      <li>{{detail}}</li> 
     {{/each}} 
    </ul> 
</template> 

<template name="taskDetail"> 
    {{#each selectedTask}} 
     <div>{{detail}}</div> 
    {{/each}} 
</template> 
+0

그것은 않습니다 같은 일이 같은 데이터가있는 경우 ...'데이터 : { \t \t \t 작업 : [{세부 사항 : 'foo는'}, {세부 사항 : 'foo는'}], \t \t \t selectedTask : [{detail : 'bar'}, {detail : 'bar'}] ' \t \t} – kbascombe

답변

0

죄송합니다. 두 가지 방법 모두 현재 저에게 효과적입니다. 나는 틀린 템플렛 이름 또는 유사한 것을 있어야 했음에 틀림 없다.

위의 예 에서처럼 여러 데이터 소스를 가질 수 있습니다.

0

당신은 (findOne에) 하나의 개체로 selectedTask를 반환되지만 taskDetail 템플릿에, 당신은 {{#each selectedTask}}{{detail}}{{/each}}를 사용합니다. 해당 템플릿의 본문에 {{detail}}이 있으면 어떻게됩니까?