创建后更新Fullcalendar事件
Update Fullcalendar event after creation?
当我创建一个新事件时,我使用一个tastype REST API将它发布到服务器上。当创建时,服务器上的这个事件有一个新id,在保存时生成:
select: function (startDate, endDate, allDay, jsEvent, view) {
/* after selection user will be promted for enter title for event.*/
var title = prompt('Event Title:');
/*if title is enterd calendar will add title and event into fullCalendar. */
}
if (title) {
calendar.fullCalendar('renderEvent', {
title: title,
start: startDate,
end: endDate,
allDay: allDay
},
true // make the event "stick"
);
$.ajax({
url: 'http://localhost:8000/calendar/api/events/events/',
dataType: 'json',
contentType: 'application/json; encode=UTF-8',
type: 'POST',
data: JSON.stringify({
title: title,
start: startDate,
end: endDate,
allDay: allDay,
user: "/calendar/api/events/users/{{ user.id }}/"
}),
success: function (data) {
// Could i do something here?
}
});
console.log({{user.id}},'{{ user}}')
}
},
我需要更新客户端内存上的事件,因为事件刚刚创建,有一个像"fc_1"或类似的事件id,但我需要DB id,因为如果我立即拖动或调整事件大小,我不能在服务器上更新它,因为它会尝试PUT这个事件,但错误的id(如"fc_1")。
在你的renderEvent对象中,你可以添加id: 'pending'。然后,在成功函数中,可以使用fullcalendar clientEvents函数来获取事件数组,然后使用updateEvent添加新的id值:
success: function(data) {
var newID = data.id;
var events = calendar.fullCalendar('clientEvents');
for(var i = 0; i < events.length; i++){
if(events[i].id == 'pending') {
events[i].id = newID;
calendar.fullCalendar('updateEvent', events[i]);
}
}
}
相关文章:
- FullCalendar:事件发生时阻止重叠.标题是一样的
- 我可以在FullCalendar中设置事件ClickLimit弹出窗口的样式吗
- fullcalendar在删除导致浏览器挂起的多个事件时速度较慢
- 可以'如果我隐藏某些日期,则不要在FullCalendar中拖动事件
- 无法将事件重新呈现为fullCalendar
- 如何将事件的日期放入fullcalendar中的日期对象中
- ASP.NET MVC5 jQuery FullCalendar获取事件问题
- 如何将自定义参数传递到FullCalendar事件提要
- fullcalendar后台事件:允许删除
- FullCalendar单击并拖动多个事件
- fullcalendar赢得't让我调整事件大小(光标不显示,我做错了)
- fullCalendar动态事件单击行为
- jQueryUI FullCalendar:从服务器获取事件后的回调
- 在FullCalendar中单击一天获取事件
- 是否可以根据FullCalendar事件的标题指定其背景颜色
- Fullcalendar显示每天的事件计数
- FullCalendar夏令时将事件向后移动1天
- FullCalendar 开始和结束日期在获取事件时解析为 null
- 如何在点击上一页/下一页时创建事件?FullCalendar
- 如何仅从一个源提取事件Fullcalendar