2013-08-29 153 views
2

流星新手在这里。流星数据嵌套模板

我有一个主页模板。主页有几个“日”,其中每个都有“任务”。我想在它属于的那一天显示相应的任务,但我不知道如何执行此操作。

我也只想用一个数据库查询检索相关任务(如果可能的话)(即两周内的所有任务)。

我发现了其他一些与此相关的问题,包括thisthis,但我无法辨别出任何有用的相关信息。

我有一个任务集合,作为主页的一部分,我检索了两周的任务。然后我把它们分成日桶。

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

我很高兴你解决了这个问题,我看到了你的tweet太晚了:) – imslavko

回答

3

应该做的伎俩:

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

编辑:这是不正确的原来的答案。

task具有称为name,importantdueToday的字段。然后,你可能会写:

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

或者,如果你坚持:

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

另外:

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

对不起,这可能一直不清楚,但每个桶实际上都是一个Task对象的数组。所以我想如果我这样做,它会错误,因为我试图找到一个数组的名称属性。 – Oliver

+0

哎呦,我的坏。我已经更新了答案。 –

+0

没有意识到这是指每个输入。当然。谢谢! – Oliver