Я использую fullcalendar в проекте Angular 8. Я пытаюсь получить события из sql дБ. События загружаются в массив, однако они не отображаются в календаре. Если я жестко закодирую события в том же формате в массиве событий, они отображаются так, как и предполагалось
Вот мой компонент .ts
import { Component, Input, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import dayGridPlugin from '@fullcalendar/daygrid';
import { Subject } from 'rxjs';
import { first } from 'rxjs/operators';
import { environment } from '../../environments/environment';
import { ICalendarHomework } from '../interfaces/ICaledarHomework';
import { IUser } from '../interfaces/IUser';
import { AuthService } from '../shared/services/auth/auth.service';
import { HomeworkService } from '../shared/services/homework/homework.service';
import { UserService } from '../shared/services/user/user.service';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
export class HomeComponent implements OnInit {
loading = false;
currentUser: IUser;
userFromApi: IUser;
navLinks: any[];
activeLinkIndex = -1;
calendarEvents: ICalendarHomework[];
homeworkEvent: any;
appUrl: string;
apiUrl: string;
userId: number;
homeworkEvents: any[];
calendarPlugins = [dayGridPlugin];
ngOnInit() {
this.userId = this.currentUser.userId;
this.loading = true;
this.userService.getById(this.userId)
.pipe(first())
.subscribe(user => {
this.loading = false;
this.userFromApi = user;
});
this.router.events.subscribe((res) => {
this.activeLinkIndex = this.navLinks.indexOf(
this.navLinks.find(
tab => tab.link === '.' + this.router.url));
});
this.calendarEvents = [];
this.homeworkService.getCalendarHomeworksByUser(this.userId)
.subscribe(data => {
this.homeworkEvents= data;
this.homeworkEvents.forEach(homework => {
var yearAssigned = homework.assignDate.toString().substring(0, 4);
var monthAssigned = homework.assignDate.toString().substring(5, 7);
var dayAssigned = homework.assignDate.toString().substring(8, 10);
var yearDue = homework.dueDate.toString().substring(0, 4);
var monthDue = homework.dueDate.toString().substring(5, 7);
var dayDue = homework.dueDate.toString().substring(8, 10);
var dateAssigned = yearAssigned + "-" + monthAssigned + "-" + dayAssigned;
var dateDue = yearDue + "-" + monthDue + "-" + dayDue;
let homeworkEvent: any = {
title: homework.assignment,
start: dateAssigned,
end: dateDue
};
this.calendarEvents.push(homeworkEvent);
});
})
}
Любой мой компонент. html
<full-calendar [events] = "calendarEvents" defaultView="dayGridMonth" [plugins]="calendarPlugins"></full-calendar>```