Meteor Js - 显示与一天相关的文档

时间:2015-10-28 18:45:41

标签: meteor meteor-packages

我很担心这是最好的方法,因为我没有设法找到一个可以轻松解决这个问题的软件包,其他类似问题的答案也没有解决这个问题。

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

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

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

或者,不那么模糊:

2014年10月23日 - 约翰史密斯在巴斯凯得到10分 - 保罗·阿特雷德斯在未来告诉上获得20分

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

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

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

提前致谢

1 个答案:

答案 0 :(得分: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 - get array of dates between 2 dates