【问题标题】:Meteor Js - Display documents associated to a dayMeteor Js - 显示与一天相关的文档
【发布时间】:2015-10-29 03:35:40
【问题描述】:

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

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

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 并不是最好的选择。

提前致谢

【问题讨论】:

    标签: meteor meteor-packages


    【解决方案1】:

    您可以在模板帮助程序中创建一个数组天,使用{{#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

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 2018-10-30
      相关资源
      最近更新 更多