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 }});
}
});