我正在使用FullCalendar显示学校的日程安排信息。
对于某些多日活动,我想在日历中添加第一次出现的活动。我在Day和Week视图中使用了这个工作正常,使用eventRender回调来简单地检查正在呈现的日期,并且假设我们在事件开始时预先设定了标题。
在月视图中,跨越一周以上的事件会导致多次调用eventRender回调。但是,我无法确定哪些回调与哪一周相关。它们似乎都带有相同的日期信息。
在回调中,有没有办法告诉该特定元素代表的日期范围?
更新
对于某些示例代码的请求 - 生成示例代码有点困难,该示例代码演示了对某些数据的访问权限,而这些数据我不知道其中可能不存在的位置。但是,我可以显示我使用过的变通方法。
在初始化FullCalendar的调用中,我指定eventRender事件应该转到一个名为tweakElement的函数,然后它的来源是:
tweakElement = (event, element) ->
if event.prefix
#
# We are being asked, at least some of the time, to put a prefix
# on the event's title. We do this only for elements which show
# the chronological start of the event - not those where it
# is just continuing.
#
if event.start >= @viewStartDate
if (@viewName == "agendaWeek" ||
@viewName == "agendaDay" ||
@viewName == "basicDay")
element.find('.fc-title').prepend(event.prefix)
else if @viewName == "month"
#
# This one takes a bit more thought. The event may occur in
# several elements, and only the first gets the prefix.
#
if !@elementsSeen[event.id]
@elementsSeen[event.id] = true
element.find('.fc-title').prepend(event.prefix)
@viewStartDate和@viewName在渲染开始时设置,@ elementsSeen设置为空对象。最终结果是事件的第一个元素获得前缀,我相信FullCalendar总是按时间顺序传递它们。
它似乎有用,但我担心它不是最好的方式,也不是特别健壮。