我正在使用fullcalendar,当我渲染事件时(我通过模态添加事件),我使用Ajax将其插入数据库中,然后我得到了insert_id和我试图将id归因于这样的事件:
eventAfterRender:function( event, element, view ) {
$(element).attr("id","event_id_"+event._id);
}
但它没有用,所以,当我以模态提交时,最后我会调用此函数:
function getFreshEvents(){
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar({
//removeEvents,
eventSources: [
{
events: {
url: root_url + 'agenda/LoadEvenements',
type: 'GET',
data: {
start:moment( $("#calendar").fullCalendar("getView").start ).format("YYYY-MM-DD"),
end:moment( $("#calendar").fullCalendar("getView").end ).format("YYYY-MM-DD")
},
error: function() {
alert('Error');
}
}
}]
});
}
但这没有用!!
有一件事情很好:
function getFreshEvents(){
$('#calendar').fullCalendar('removeEvents');
$.ajax({
url: root_url + 'agenda/LoadEvenements',
type: 'POST', // Send post data
async: false,
success: function(s){
if(s.vide != true){
json_events = s;
}
}
});
$('#calendar').fullCalendar('addEventSource', json_events);
}
但是正如你所看到的,我并没有开始和结束这些参数。
有什么想法吗?
答案 0 :(得分:0)
你不需要发送开始&结束日期明确。 fullcalendar会在当前视图的开始和结束时间自动为您完成。如果只有一个来源填满您的日历,您也可以使用事件而不是eventSource。
所以我会那样做:
function getFreshEvents(){
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar({
events: root_url + 'agenda/LoadEvenements',
});
}
或者如果你坚持使用eventSource:
function getFreshEvents(){
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar({
eventSources: [
'root_url + 'agenda/LoadEvenements'
]
});
}
尽管两个代码部分都会按照您的意愿执行,但我会采用不同的方法。每当添加新事件时重新加载所有事件都没有意义。因此,当您创建事件并将其发送到服务器时,也可以自行将其添加到具有renderEvent功能的日历中。您可以将stick
选项设置为true,以便在单击“上一个”和“下一个”时不会丢失该事件。
希望有所帮助。