javascript - 无法在 eventReceived 事件中为 Angular 中的事件设置 ID
问题描述
我正在使用具有拖放功能的 Angular 的 fullcalendar 模块。当用户在日历上删除新事件时,我想设置 ID。但我不知道我该如何设置。
这是Stackblitz URL。下面还有 eventReceive 函数。
eventReceive(event) {
const dataSet = event.draggedEl.dataset.event;
const dataJson = JSON.parse(dataSet);
const eventIndex: number = this.eventList.findIndex(d => d.id === dataJson.id);
this.eventList.splice(eventIndex, 1);
const isAllday = event.event.allDay;
const endEventDate = event.event.end;
const startEventDate = new Date(event.event.start);
const EventTimeObject: any = {
type: 'event',
id: dataJson.id,
start: startEventDate.toUTCString(),
title: dataJson.title,
color: dataJson.color
};
if (isAllday) {
const endTime = new Date(startEventDate);
const endTimeHour = endTime.setHours(23, 59, 59, 999);
EventTimeObject.end = endTimeHour;
}
if (!isAllday && endEventDate === null) {
const endTime = new Date(startEventDate);
const endTimeHour = endTime.setHours(endTime.getHours() + 1);
EventTimeObject.end = endTimeHour;
} else if (endEventDate) {
EventTimeObject.end = new Date(endEventDate).getTime();
}
this.eventsModel = [...this.eventsModel, EventTimeObject];
console.log(this.eventsModel);
// this.plannerService.addActionDates(EventTimeObject);
}
解决方案
好的,我已经想通了,但是我不确定这是否正确,解决方案是需要在draggrable
对象中添加 id
draggableEvent() {
new Draggable(this.external.nativeElement, {
itemSelector: '.fc-event',
eventData(eventEl) {
return {
title: eventEl.innerText,
id: eventEl.id
};
}
});
}
推荐阅读
- mysql - 我能知道相关子查询是什么意思吗?
- java - Android:需要用户交互/输入的通知
- c++ - 电位器与第二块 arduino 板的通信状态
- java - 在 SpringRunner 中创建环境 bean 失败
- google-cloud-storage - 使用 TextIO.write 到 Google Cloud Storage 时如何设置文件类型
- nativescript-vue - 用户设置警报后如何强制打开特定活动?
- javascript - 使用 AJAX 只提交一个表单
- python - 使用python可迭代错误的神经风格转移?
- amazon-web-services - 以编程方式跨不同帐户访问 cloudwatch
- c# - 无法更改 Xamarin Forms v4.1 中的工具栏图标