我已经实施了概述here的2周视图,我想知道是否有人可以告诉我如何/在哪里更改prev / next按钮以仅将日历移动2周而不是下个月?不知道在哪里更新fullcalendar.js。
答案 0 :(得分:6)
想出来。问题是我使用的解决方案基于月视图,它可能应该基于周视图。
首先,确保视图的所有信息都列在defualts
中// time formats
titleFormat: {
month: 'MMMM yyyy',
twoweek: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
day: 'dddd, MMM d, yyyy'
},
columnFormat: {
month: 'ddd',
twoweek: 'ddd',
week: 'ddd M/d',
day: 'dddd M/d'
},
buttonText: {
prev: ' ◄ ',
next: ' ► ',
prevYear: ' << ',
nextYear: ' >> ',
today: 'today',
month: 'month',
twoweek: '2 week',
week: 'week',
day: 'day',
resourceDay: 'designers'
},
这是我2周视图的代码
fcViews.twoweek = TwoWeeksView;
function TwoWeeksView(element, calendar) {
var t = this;
// exports
t.render = render;
// imports
BasicView.call(t, element, calendar, 'twoweek');
var opt = t.opt;
var renderBasic = t.renderBasic;
var formatDates = calendar.formatDates;
function render(date, delta) {
if (delta) {
addDays(date, delta*7);
}
var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7));
var end = addDays(cloneDate(start), 7*2);
var visStart = cloneDate(start);
var visEnd = cloneDate(end);
var weekends = opt('weekends');
if (!weekends) {
skipWeekend(visStart);
skipWeekend(visEnd, -1, true);
}
t.title = formatDates(
visStart,
addDays(cloneDate(visEnd), -1),
opt('titleFormat')
);
t.start = start;
t.end = end;
t.visStart = visStart;
t.visEnd = visEnd;
renderBasic(2, 2, weekends ? 7 : 5, true);
}
}
这里的关键区别是最后一行:renderBasic(2,2,周末?7:5,true);
如果您不更新默认视图中的视图信息,则formatdates中的参数未定义且存在问题。周视图和月视图之间存在一些差异,这使得基于周视图的两周视图变得更好。它变得有点混合在两者之间。希望这有助于任何正在寻找完整2周视图修复的人。
这样打电话:
$('#calendar').fullCalendar({
header: {
left:'prev, next',
center: 'title',
right: 'twoweek'
},
defaultView: 'twoweek',
weekMode:'fixed'
});