FullCalendar - 显示agendaDay中每一行的时间

时间:2014-05-20 09:34:25

标签: angularjs fullcalendar angular-ui

我正在使用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源代码进行任何更改。我不想为这个修改创建一个分支。有没有办法配置它?

感谢。

2 个答案:

答案 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')) : '&nbsp;') +
"</th>"

如果您只想显示小时标记(下午1点,下午2点,下午3点等),请将代码更改为:

"<th class='fc-agenda-axis " + headerClass + "'>" +
((!minutes) ? formatDate(d, opt('axisFormat')) : '&nbsp;') +
"</th>"

如果您想总是显示时间:

"<th class='fc-agenda-axis " + headerClass + "'>" +
formatDate(d, opt('axisFormat')) +
"</th>"

变量slotNormal导致问题。该变量基本上是一个mod 15,其值是您在日历配置中放入slotMinutes的值。因此,它将使原始代码中的条件15,30和45(或任何其他倍数)失败。

此致

Pedro Vaz