2015-10-28 2 views
0

Я довольно смущен относительно того, что это лучший способ сделать это, так как мне не удалось найти пакет, который решает эти легко и другие ответы на подобные проблемы. t адресуйте это правильно.Meteor Js - Показать документы, связанные с днем ​​

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

10/27/2015 - Документ A - Документ B

10/26/2015 - Документ C - Документ D - Документ E

Или, что менее неопределенно:

10/23/2014 - Джон Смит получил 10 баллов по Basquet - Пол Атрейдес получил 20 баллов на будущее Рассказывая

10/21/2014 - Гейзенберг получил 25 баллов по национальной торговле - и т.д.

Являясь отображаемым документом, например, коллекцией «Отчеты», которая объединяет «Игроков» с «Акциями», например.

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

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

ответ

0

Вы можете просто создать массив дней в вашем помощнике шаблона, перебирать, что с {{#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 - get array of dates between 2 dates

Смежные вопросы