0

我很困惑哪种方法是最好的方法,因为我没有找到一个可以轻松解决这个问题的包,而且类似问题的其他答案也没有正确解决这个问题。

我需要一个模板来列出日期并显示在每一天创建的所有文档,例如:

2015 年 10 月 27 日 - 文件 A - 文件 B

2015 年 10 月 26 日 - 文件 C - 文件 D - 文件 E

或者,不那么模糊:

2014 年 10 月 23 日 - John Smith 在 Basquet 上获得 10 分 - Paul Atreides 在 Future Telling 上获得 20 分

2014 年 10 月 21 日 - 海森堡在国家贸易方面获得 25 分 - 等等。

例如,显示的文档类似于将“玩家”与“活动”连接起来的“报告”集合。

实现此功能的正确方法是什么?我想创建一个 Days Collection 并不是最好的选择。

提前致谢

4

1 回答 1

0

您可以在模板帮助程序中创建一个天数组,对其进行迭代,{{#each}}然后让另一个帮助程序返回每天的文档游标。

html:

<template name="docsByDay">
{{#each days}}
  Date: {{this}} <!-- 'this' will be an individual date ->
  {{#each documents this}}
    {{content}}
  {{/each}}
{{/each}}
</template>

替换{{content}}为您想从您的收藏中显示的任何字段。

js:

Template.docsByDay.helpers({
  days: function(){
    var arrayOfDates =[];
    // create your array based on the date range and interval you want
    return arrayOfDates;
  },
  documents: function(d){
    var start = Date(getFullYear(d),getMonth(d),getDate(d));
    var end = Date(getFullYear(d),getMonth(d),getDate(d)+1);
    return Documents.find({ date: { $gte: start, $lt: end }});
  }
});

请参阅javascript - 获取 2 个日期之间的日期数组

于 2015-10-28T19:35:40.310 回答