Meteor Js - отображение документов, связанных с днем

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

Мне нужно иметь шаблон, который перечисляет дни и отображает все документы, созданные в каждый день, например:

27.10.2015 - Документ A - Документ B

26.10.2015 - Документ C - Документ D - Документ E

Или менее смутно:

23.10.2014 - Джон Смит получил 10 баллов по Баскету - Пол Атрейдес получил 20 баллов по Future Telling

21.10.2014 - Гейзенберг получил 25 баллов по национальной торговле и т. Д.

Будучи отображаемым документом, что-то вроде коллекции "Отчеты", которая, например, объединяет "Игроки" с "Действиями"

Как правильно достичь этой функциональности? Я думаю, что создание Дней Коллекции не лучший вариант.

заранее спасибо

1 ответ

Вы можете просто создать массив дней в вашем помощнике по шаблону, итерировать по нему с помощью {{#each}} затем есть другой помощник, который возвращает курсор документов для каждого дня.

HTML:

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

замещать {{content}} с любыми полями, которые вы хотите отобразить из вашей коллекции.

ЯШ:

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 датами

Другие вопросы по тегам