目前正在使用fullcalendar.io
在文档中,它有calendar.fullCalendar(' refetchEvents'),用于从服务器重新获取所有事件。
简而言之,我希望完成calendar.fullCalendar(' refetchEvents')请求,然后向我发回一个回调让我知道。我希望在继续执行某些任务之前下载所有事件。
我该怎么做?
答案 0 :(得分:5)
通过在成功的http帖子之后执行重新获取事件来解决它,如下所示
Service.insert(event).
success(function (data, status, headers, config) {
calendar.fullCalendar('refetchEvents');
}).
error(function(data, status, headers, config) {
alert('error');
});
答案 1 :(得分:2)
我已经从FullCalendar的demos文件夹中更改了basic-views.html。我添加了
,
eventAfterAllRender: function (view) {
console.log('eventAfterAllRender');
console.log(view);
}
到日历选项列表。它会在初始事件加载后以及每个$('#calendar')之后触发.fulcCalendar(' refetchEvents');
完整的演示代码:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<link href='../fullcalendar.css' rel='stylesheet' />
<link href='../fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='../lib/moment.min.js'></script>
<script src='../lib/jquery.min.js'></script>
<script src='../fullcalendar.min.js'></script>
<script>
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
defaultDate: '2014-11-12',
editable: true,
eventLimit: true, // allow "more" link when too many events
events: [
{
title: 'All Day Event',
start: '2014-11-01'
},
{
title: 'Long Event',
start: '2014-11-07',
end: '2014-11-10'
},
{
id: 999,
title: 'Repeating Event',
start: '2014-11-09T16:00:00'
},
{
id: 999,
title: 'Repeating Event',
start: '2014-11-16T16:00:00'
},
{
title: 'Conference',
start: '2014-11-11',
end: '2014-11-13'
},
{
title: 'Meeting',
start: '2014-11-12T10:30:00',
end: '2014-11-12T12:30:00'
},
{
title: 'Lunch',
start: '2014-11-12T12:00:00'
},
{
title: 'Meeting',
start: '2014-11-12T14:30:00'
},
{
title: 'Happy Hour',
start: '2014-11-12T17:30:00'
},
{
title: 'Dinner',
start: '2014-11-12T20:00:00'
},
{
title: 'Birthday Party',
start: '2014-11-13T07:00:00'
},
{
title: 'Click for Google',
url: 'http://google.com/',
start: '2014-11-28'
}
],
eventAfterAllRender: function (view) {
console.log('eventAfterAllRender');
console.log(view);
}
});
$('#calendar').fullCalendar( 'refetchEvents' );
});
</script>
<style>
body {
margin: 40px 10px;
padding: 0;
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
font-size: 14px;
}
#calendar {
max-width: 900px;
margin: 0 auto;
}
</style>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
答案 2 :(得分:2)
试试这个
$('#calendar').fullCalendar('destroy'); $('#calendar').fullCalendar({ defaultView: 'month', editable: true, //eventLimit: true, // allow "more" link when too many events events: myevents, });