【发布时间】:2014-07-06 13:56:45
【问题描述】:
我不知道这是功能还是错误。但如果 allDay 为真,则事件结束值设置为 null。 这是更新事件的函数:
change: function (eventModel) {
var currEvId = eventModel.get('_id');
var fcEvent = $("#calendar").fullCalendar('clientEvents', currEvId)[0] || {};
console.log("end before update : " + fcEvent.end);
fcEvent.title = alvEventModel.get("title");
fcEvent.start = new Date(alvEventModel.get("start"));
fcEvent.end = new Date(alvEventModel.get("end"));
fcEvent.allDay = alvEventModel.get("allDay"); //true or false
this.el.fullCalendar('updateEvent', fcEvent);
console.log("start: " + fcEvent.start);
console.log("end: " + fcEvent.end);
},
控制台显示
end before update : 1404896400000
end after update: null
fullcalendar 属性 forceEventDuration 设置为 true
this.$el.fullCalendar({
lang: 'sv',
header: {
left: 'prev,next, today',
center: 'title',
right: 'month,agendaWeek,agendaDay',
ignoreTimezone: false
},
forceEventDuration:true,
select: this.select,
selectable: true,
selectHelper: true,
editable: true,
disableDragging: true,
disableResizing: true,
aspectRatio: 2.5,
height: 600,
weekNumbers: true,
...
})
控制台显示
end before update : 1404864000000
end after update: 1404813300000
在这种情况下,事件的呈现是一天。即使在将 allDay 更新为 false 之后,它也会继续显示为一天事件,直到从服务器重新加载事件。 我认为标准行为是 allDay 必须有一个开始和结束日期。但我不确定将结束日期声明为空的意图。可能是我误解了这种行为的美妙之处。我不知道如何用于我的目标。我需要像其他日历一样的结束日期。
http://jsfiddle.net/Mr_Vertigo/k3RZX/1/ 并且版本是v2.0.2
【问题讨论】:
标签: javascript backbone.js fullcalendar