想通了。问题是我使用的解决方案是基于月视图,而它可能应该基于周视图。
首先,确保视图的所有信息都列在默认值中
// 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,weekends ? 7 : 5, true);
如果您不更新默认视图的信息,则 formatdates 中的参数未定义并且存在问题。周视图和月视图之间存在一些差异,这使得基于周视图的两周视图更好。它成为两者之间的某种混合。希望这对正在寻找完整 2 周视图修复的任何人有所帮助。
这样调用:
$('#calendar').fullCalendar({
header: {
left:'prev, next',
center: 'title',
right: 'twoweek'
},
defaultView: 'twoweek',
weekMode:'fixed'
});