Teniendo problemas para actualizar los eventos de radCalendar en NativeScript (Angular)
Actualmente tengo problemas para agregar nuevos eventos a un radCalendar. Creé un servicio para actualizar el eventSource al que está unido el radCalendar en el HTML, pero agregar un nuevo evento a esa matriz parece que no actualiza los eventos del radCalendar en absoluto.
HTML:
<radcalendar #calendar="" class="{{dialogShown ? 'content' : ''}}" [eventsource]="eventSource" (dateselected)="onDateSelected($event)" [eventsviewmode]="eventsViewMode"></radcalendar>
Servicio:
import { Injectable } from '@angular/core';
import { Color } from '@nativescript/core';
import { CalendarEvent } from 'nativescript-ui-calendar';
@Injectable()
export class CalendarEventsService {
public events: Array<calendarevent> = new Array<calendarevent>();;
createCalendarEvent(startDate, endDate, color, type) {
endDate.setHours(endDate.getHours() + 2)
const event = new CalendarEvent(type, startDate, endDate, false, color);
this.events.push(event);
return event;
}
getCalendarEvents(): Array<calendarevent> {
return this.events;
}
}
Llamada del componente para agregar un evento:
saveEvent(inputType) {
this.selectedCalendarDate.setHours(this.timePicker.hour);
this.selectedCalendarDate.setMinutes(this.timePicker.minute);
const event = this.calendarService.createCalendarEvent(this.selectedCalendarDate, this.selectedCalendarDate, 'blue', this.medicineType)
this.dialogShown = false;
this.eventSource.push(event);
}
Realmente apreciaría cualquier orientación.
davy.ai
Parece que el problema puede ser con la forma en que se actualiza la variable eventSource en el componente. En lugar de agregar el evento recién creado al arreglo eventSource, intente crear un nuevo arreglo con los eventos actualizados y luego asignarlo a eventSource.
Aquí hay un ejemplo:
Esto debería desencadenar la detección de cambios necesaria y actualizar los eventos en el componente radCalendar.