我正在尝试禁用日历上的前几天,这样选择的事件就不会在这些日期执行。
我试过
defaultDate: '2015-03-25',
minDate: '2015-03-25',
eventConstraint: {
start: '2015-03-25'
},
有人知道我该怎么做吗?
感谢
更新——像这样?
viewRender: function(view){
if (view.start < minDate){
$('#calendar').fullCalendar('gotoDate', minDate);
}
},
禁用查看过去
假设viewRender
更新中的代码是所需的行为,那么它应该是:
viewRender: function(view){
if (view.start.isBefore(moment())){ //if view start is before now
$('#calendar').fullCalendar('gotoDate', moment); //go to now
}
},
Fullcalendar使用momentjs库进行日期比较,因此不能使用<
进行比较。
JSFiddle演示
但这种行为有点奇怪。你确定你不想让人们看到过去吗?当你一个月工作到一半的时候呢?
将事件限制在当前
让我们添加一些调整以使其更可用:
- 两个背景事件,均涵盖相同的日期(从过去到当前日期/时间)。我们需要一个全天活动和一个定时活动,因为:
定时的后台事件将仅在该时间呈现议程视图中的插槽。全天的背景事件将仅在月视图或议程视图的全天时段中呈现
- 选择Overlap和eventOverlap callbacks。这些提供了一种简单的方法来阻止用户创建或将事件转移到过去
events: [{ // All-day past
id: 'past',
start: '1900-01-01',
end: moment(),
rendering: 'background',
allDay: true
}, { // Timed past
id: 'past',
start: '1900-01-01',
end: moment(),
rendering: 'background',
}, /*other event sources...*/ ],
// Disable selection on top of the "past" event
selectOverlap: function (event) {
return event.id !== 'past';
},
// Disable dragging on top of the "past" event
eventOverlap: function (stillEvent, movingEvent) {
return stillEvent.id !== 'past';
},
JSFiddle演示