FullCalendar月视图,eventRender回调 - 如何判断哪一周?

时间:2017-04-23 17:45:38

标签: javascript fullcalendar

我正在使用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总是按时间顺序传递它们。

它似乎有用,但我担心它不是最好的方式,也不是特别健壮。

0 个答案:

没有答案