为什么带有ajax的fullcalendar事件不起作用?

时间:2014-11-23 05:24:34

标签: fullcalendar

我正在尝试使用json feed在fullcalendar的events选项中使用ajax调用,但它不起作用。我在asp.net mvc4应用程序中工作。我的ajax调用工作正常,按预期返回json,但作为测试,我只是尝试创建一个名为events的本地数组,添加一些示例数据并将其传递给回调。但由于某种原因,这不会在fullcalendar代码中设置,并且这不会在呈现的日历上显示。我正在调试fullcalendar源码,但还没有弄明白为什么它没有设置。有任何想法吗?

        $('#calendar').fullCalendar({
            theme: false,
            timeFormat: '',
            height: 'auto',
            weekends: true,
            events: function (start, end, callback) {
                $.ajax({
                    type:'POST',
                    url: '@Url.Content("~/Home/GetJson")',
                    dataType: 'json',
                    data: {
                        start: start.toLocaleString("yyyy-mm-dd"),
                        end: end.toLocaleString("yyyy-mm-dd")
                    },
                    error: function (xhr, type, exception) { alert("Error: " + exception); },
                    success: function (response) {
                        var events = [];
                        events.push({
                            title: "new title",
                            start: "2014-11-05T13:15:30Z"
                        });
                        callback(events);
                    }
                    });  
            }
        });

如果我在像这个

这样的events选项中传入一个json字符串,我已经确认fullcalendar有效
events:
 [{ title: 'Event1', start: '2014-11-05T13:15:30Z' },
 { title: 'Event2', start: '2014-11-06T13:15:30Z' }]

1 个答案:

答案 0 :(得分:4)

假设您使用的是FullCalendar 2. *,events as a function的签名是:

function( start, end, timezone, callback ) { }

只要您的event object is valid(您需要titlestart),如果您更改了

,您的代码就可以运作
events: function (start, end, callback) {

events: function (start, end, timezone, callback) {