我正在使用AngularUI-calendar构建一个Web应用程序,它基本上使用了FullCalendar.js。
我的问题是我使用agendaDay作为我的defaultView,slotMinutes设置为15。
我的日历配置如下:
calendar: {
defaultView: 'agendaDay',
editable: true,
timeFormat: {
agenda: 'HH:mm{ - HH:mm}',
},
axisFormat: 'HH:mm',
slotMinutes: 15,
}
这给了我这种外观和感觉:
http://s30.postimg.org/aqt720mep/full_Calendar_row_without_times.jpg
看起来不错,但我想展示每一行的时间。像这样:
http://s24.postimg.org/vrvnhv39x/full_Calendar_row_with_times.jpg
我管理如何更改FullCalendar.js上的第3004行:
这是原始行
((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') +
这是我的修改
((!slotNormal || !minutes) ? "< b>" + formatDate(d, opt('axisFormat')) + "< /b>" : formatDate(d, opt('axisFormat'))) +
我想知道是否有其他方法可以做到这一点,因为我试图避免对FullCalendar源代码进行任何更改。我不想为这个修改创建一个分支。有没有办法配置它?
感谢。
答案 0 :(得分:0)
我知道你可以在js中实现2个事件(其中任何一个)并更改渲染。但从未尝试过你想要的东西。你可以检查方法eventRender或eventAfterAllRender。你可以尝试一下。
答案 1 :(得分:0)
我实际上发现这是FullCalendar.js上的一个错误。你选择slotMinutes为15,30或45.你在agendaView上有这个空行的错误。
这个问题可以在这里看到:https://code.google.com/p/fullcalendar/issues/detail?id=946&colspec=ID
解决此问题非常简单。问题出在下面的代码中:
"<th class='fc-agenda-axis " + headerClass + "'>" +
((!slotNormal || !minutes) ? formatDate(d, opt('axisFormat')) : ' ') +
"</th>"
如果您只想显示小时标记(下午1点,下午2点,下午3点等),请将代码更改为:
"<th class='fc-agenda-axis " + headerClass + "'>" +
((!minutes) ? formatDate(d, opt('axisFormat')) : ' ') +
"</th>"
如果您想总是显示时间:
"<th class='fc-agenda-axis " + headerClass + "'>" +
formatDate(d, opt('axisFormat')) +
"</th>"
变量slotNormal导致问题。该变量基本上是一个mod 15,其值是您在日历配置中放入slotMinutes的值。因此,它将使原始代码中的条件15,30和45(或任何其他倍数)失败。
此致
Pedro Vaz