Я использую Angular Calendar https://github.com/mattlewis92/angular-calendar и хочу, чтобы в каждой ячейке было больше одного значка, каждый значок в счетчике для события различного типа. Существуют разные типы событий (использование мета-свойства в событии).
У меня трудное время со счетчиком событий дня.
Это результат, который я хочу получить.
РЕДАКТИРОВАТЬ : вот что я пробовал
Я использовал этот пользовательский шаблон ячейки календаря для добавления значков.
<ng-template #customCellTemplate let-day="day" let-locale="locale">
<div class="cal-cell-top">
<span style="background-color: grey" class="cal-day-badge" *ngIf="day.badgeTotal > 0">{{ day.badgeTotal }}</span>
<span class="cal-day-number">{{ day.date | calendarDate:'monthViewDayNumber':locale }}</span>
</div>
<div>
<span class="cal-day-badge" *ngIf="day.badgeTotal > 0">{{countErrors()}}</span>
<span style="background-color: green" class="cal-day-badge" *ngIf="day.badgeTotal > 0">{{ countSuccesses() }}</span>
<span style="background-color: orange" class="cal-day-badge" *ngIf="day.badgeTotal > 0">{{ countWarnings() }}</span>
</div>
</ng-template>
Три функции countErrors()
countWarnings()
и countSuccesses()
подсчитывают количество событий одного типа (ошибка, успех или предупреждение).
Тип события указывается с помощью свойства meta
:
{
start: subDays(startOfDay(new Date()), 1),
end: addDays(new Date(), 1),
title: 'A 3 day event',
color: colors.red,
actions: this.actions,
allDay: true,
resizable: {
beforeStart: true,
afterEnd: true
},
draggable: true,
meta : {
type : 0
}
},
Когда я запускаю это, вот что я получаю:

Я думаю, что один подсчет был выполнен за первый день, и все остальные дни получили тот же результат.
РЕДАКТИРОВАТЬ : вот функция, которую я вызываю внутри шаблона
countErrors(): number {
let count = 0;
this.events.filter(event => {
if (event.meta.type === 0) {
count++;
}
})
return count;
}
Три функции одинаковы. Единственное отличие заключается в условии if
: изменение типа события 0 1 2.