我正在使用FullCalendar和外部拖动的事件。关键是,根据我的商业案例,我无法两次保存同一事件。我在模型上处理这个问题,所以当将偶数A放到第1天时,它将被成功保存。 Model将返回记录ID,我将相应地更新事件。
每当尝试在DB中复制事件时,Model都不允许这样做,它将返回nil ID(这是正确的)。所以,在这一点上,我想删除最后一次丢弃的事件。
出于某种原因,这是不可能的。当试图删除任何DB现有事件时,它完全可以解决,但是当我想在最后一个事件中执行此操作时,它无效(通过$('#calendar').fullCalendar('updateEvent', event);
)。
我尝试过的一些事情,将ID设置为-1或999到未保存的事件,然后尝试删除它,但这不成功。此外,我尝试获取所有客户端事件并选择最后一个(我通过控制台检查了ID并且它是完美的,但是在内部获取它时,它是未定义的),所以这也不起作用。
eventReceive: function(event){
$.ajax({
url: "/menus",
type: "POST",
data: { menu: {
fecha: event.start.format(),
food_id: event.foodId
}},
dataType: "JSON",
success: function(resp){
event.id = resp.menuId;
if(event.id){
$('#calendar').fullCalendar('updateEvent', event);
}
else{
event.id = -1;
$('#calendar').fullCalendar('updateEvent', event);
$('#calendar').fullCalendar('removeEvents', -1);
}
}
});
}
你能帮助我解决这个问题吗?
谢谢和问候。
亚历。
答案 0 :(得分:0)
尝试使用$("#calendar").fullCalendar("removeEvents", event._id);
。 _id
是当事件有自动分配给它们的事件时,或者在它们分配了数据库ID之前用于事件。
答案 1 :(得分:0)
目前,有一些与我所面临的这种行为有关的未解决的问题以及我需要实施的功能(#2928&#3252)。
作为一种解决方法,我避免通过避免使用数据事件属性来调用eventReceive方法,因此,我正在处理内部drop方法中的所有内容。因此,一旦用户删除了一个事件,我首先检查所有内容,如果没有问题,我将继续执行renderEvent。
通过创建具有“正确”ID的事件,我不再面临与删除无法正常工作相关的问题。
希望这有助于其他人!