2013-08-29 8 views
2

Meteor новичок здесь.Meteor-pass данные вложенные шаблоны

У меня есть шаблон для домашней страницы. На домашней странице есть несколько «дней», в каждой из которых есть «задача». Я хочу показать соответствующую задачу в тот день, когда она принадлежит, но я не знаю, как это сделать.

Я также хочу только получить соответствующие задачи с одним запросом базы данных, если это возможно (т.е. все задачи в течение двух недель).

Я нашел пару других вопросов, связанных с этим, включая this и this, но я не могу различить любую полезную связанную информацию.

У меня есть коллекция задач, и в качестве части главной страницы я получаю двухнедельный промежуток задач. Затем я сортирую их в дневные ведра.

buckets = [[...], [...], [...], ... ] # array of arrays of task objects 

Теперь я не знаю, что делать. В домашнем шаблоне, я думаю, что я могу сделать

Template.home.helpers(
    tasks:()-> 
     #return buckets, defined above 
) 
(home.coffee) 

<template name="home"> 
    {{#each tasks}} 
     {{> day}} 
    {{/each}} 
</template> 
(home.html) 

перебрать в день ведро, но как я могу получить доступ к объектам задач из каждого шаблона дня?

<template name="day"> 
    {{#each ???}} 
     {{> task}} 
    {{/each}} 
</template> 

<template name="task"> 
    {{name}} 
</template> 

Как я могу получить доступ к данным текущей итерации каждого цикла из родительского шаблона? Я неправильно структурирую это? Должен ли я просто делать отдельные звонки на каждый день?

+0

Я рад, что вы решили эту проблему, я видел ваш твит слишком поздно :) – imslavko

ответ

3

Этот должен сделать трюк:

<template name="day"> 
    {{#each this}} 
     {{> task}} 
    {{/each}} 
</template> 

Edit: это неправильно оригинальный ответ.

У task есть поля name, important и dueToday. Тогда вы можете написать:

<template name="day"> 
    {{name}} 
</template> 

Или, если вы настаиваете:

<template name="day"> 
    {{this.name}} 
</template> 

также:

Template.day.isItUrgent = function() { 
    return this.data.important && this.data.dueToday; 
}; 
+0

Извините, это могло быть неясно, но каждый ведро на самом деле представляет собой массив объектов Task. Поэтому я думаю, что если бы я это сделал, это было бы ошибкой, так как я пытаюсь найти атрибут name массива. – Oliver

+0

Упс, мой плохой. Я обновил ответ. –

+0

Не понимал, что это относится к каждому из них. Конечно. Благодаря! – Oliver

Смежные вопросы