Fullcalendar,如何动态更改传递给 eventSource 的参数?
Fullcalendar, how to change passed parameter to eventSource dynamically?
我有以下代码来获取事件:
var eventSource = {
url: 'api/events/get/byrange',
data: {
id: typeof($scope.calendar) == 'undefined' ? '1' : '2'
}
};
问题 typeof($scope.calendar) == 'undefined' ? '1' : '2'
只评估了一次,而接下来的所有请求都通过了相同的 id
。我怎样才能让它在每次调用时再次计算这个表达式?
你需要写
{
url: 'api/events/get/byrange',
data: {
id: typeof($scope.calendar) == 'undefined' ? '1' : '2'
}
};
没有在变量中设置它var eventSource
。相反,只需将那段代码附加到您的 FullCalendar 初始化中。
但是,我不使用这种方法。相反,我对 returns 对象列表的操作执行 JSON 请求。
Javascript:
$.getJSON('GetCalendar?TrainingId=' + $('#TrainingId').val(), function (response) {
$('#CalendarWrapper').empty();
$('#CalendarWrapper').append("<div id='calendar' name='calendar'></div>");
window.events = response;
window.calendar = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay' //, basicWeek,basicDay
},
selectHelper: true,
allDaySlot: false,
slotDuration: '00:15:00',
buttonIcons: true, // show the prev/next text
weekNumbers: false,
editable: true,
selectOverlap: true,
unselectAuto: true,
eventLimit: true, // allow "more" link when too many events
lang: GetFullCalendarLanguage(),
aspectRatio: 2.5,
events: window.events,
});
_CalendarBuild = true;
})
操作:
[HttpGet]
public JsonResult GetCalendar(int TrainingId)
{
var model = QUERY
.Select(x => new FullCalendar
{
title = x.Module.Description + ", " + x.Local.Info,
Day = x.Day,
(...)
})
.ToList();
return Json(model, JsonRequestBehavior.AllowGet);
}
完整日历:
public class FullCalendar
{
public virtual string title { get; set; }
public virtual string url { get; set; }
public virtual DateTime Day { get; set; }
public virtual string start { get; set; }
public virtual string end { get; set; }
public virtual bool startEditable { get; set; }
}
当我想再次渲染时,我只需再次调用 javascript(它被放置在一个函数中)。
我有以下代码来获取事件:
var eventSource = {
url: 'api/events/get/byrange',
data: {
id: typeof($scope.calendar) == 'undefined' ? '1' : '2'
}
};
问题 typeof($scope.calendar) == 'undefined' ? '1' : '2'
只评估了一次,而接下来的所有请求都通过了相同的 id
。我怎样才能让它在每次调用时再次计算这个表达式?
你需要写
{
url: 'api/events/get/byrange',
data: {
id: typeof($scope.calendar) == 'undefined' ? '1' : '2'
}
};
没有在变量中设置它var eventSource
。相反,只需将那段代码附加到您的 FullCalendar 初始化中。
但是,我不使用这种方法。相反,我对 returns 对象列表的操作执行 JSON 请求。
Javascript:
$.getJSON('GetCalendar?TrainingId=' + $('#TrainingId').val(), function (response) {
$('#CalendarWrapper').empty();
$('#CalendarWrapper').append("<div id='calendar' name='calendar'></div>");
window.events = response;
window.calendar = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay' //, basicWeek,basicDay
},
selectHelper: true,
allDaySlot: false,
slotDuration: '00:15:00',
buttonIcons: true, // show the prev/next text
weekNumbers: false,
editable: true,
selectOverlap: true,
unselectAuto: true,
eventLimit: true, // allow "more" link when too many events
lang: GetFullCalendarLanguage(),
aspectRatio: 2.5,
events: window.events,
});
_CalendarBuild = true;
})
操作:
[HttpGet]
public JsonResult GetCalendar(int TrainingId)
{
var model = QUERY
.Select(x => new FullCalendar
{
title = x.Module.Description + ", " + x.Local.Info,
Day = x.Day,
(...)
})
.ToList();
return Json(model, JsonRequestBehavior.AllowGet);
}
完整日历:
public class FullCalendar
{
public virtual string title { get; set; }
public virtual string url { get; set; }
public virtual DateTime Day { get; set; }
public virtual string start { get; set; }
public virtual string end { get; set; }
public virtual bool startEditable { get; set; }
}
当我想再次渲染时,我只需再次调用 javascript(它被放置在一个函数中)。