2012-07-19 80 views
0

我正在同步fullcalendar和Google日曆,並且我注意到在周視圖中,週日從0:00到12:00的事件是失蹤,但僅限於那一天。如果我切換到日視圖,它會每天發生。某些事件在周視圖和其他日間視圖中缺失,但在月視圖中顯示

您可以在這裏看到的錯誤:http://www.kittikun.jp/schedule2.html

下面是頁面的源代碼:

<script> 
     $(document).ready(function() { 

      $('#calendar').fullCalendar({ 
       events: { url:"http://www.google.com/calendar/feeds/contact%40kittikun.jp/public/basic" }, 
       theme: true, 
       header: { 
        left: 'today prev,next', 
        center: '', 
        right: 'month,agendaWeek,agendaDay' 
       }, 
       allDaySlot: false, 
       timeFormat: "H:mm", 
       aspectRatio: 1, 
       lazyFetching: false, 
       firsthour: 0, 
       buttonIcons: {prev: 'circle-triangle-w'}, 
       eventClick: function(calEvent, jsEvent, view) { 
        if (calEvent.description) { 
         var $dialog = $('<div></div>') 
          .html(calEvent.description) 
          .dialog({ 
           title: calEvent.location, 
           modal: true, 
           width: 500 
         }); 

         $dialog.dialog('open'); 
        } 
        return false; 
        } 
      }); 
     }); 
    </script> 

在這個論壇上搜索後,我發現了這個話題:

JQuery:FullCalendar Plugin: Events are not shown in week view and day view but are shown in month view

但解決方案沒有工作

感謝您閱讀本

+0

您已禁用allDaySlot。請檢查缺少的事件是否是AllDay事件。因爲allDay插槽在日和周視圖中,但不在月視圖中。我懷疑這就是爲什麼你在月視圖中看到這些事件,而不是在日和周視圖中。 – 2012-07-19 13:28:44

+0

@Adil - 據我所知,事件是1小時的事件。更改該設置將不會產生影響 – Kamal 2012-07-19 14:36:42

+0

@AdilMalik我同意,allDaySlot沒有任何影響 – kittikun 2012-07-20 06:51:49

回答

0

嘗試設置

lazyFetching: true 
+0

感謝您的回覆。作爲一種魅力,只要你開始進入月視圖,然後進入其他模式,但不是它最初打算如何工作。它本來應該使用默認日程表,因此我已經添加了 defaultView:「agendaWeek」, 現在星期日問題回來了,雖然一天是固定的。如果進入月份,它也會修正一週。 該schedule2.html鏈接已更新,所以你可以看到我的意思。 – kittikun 2012-07-20 06:41:52

+0

我看不到任何問題。也許檢查支持,並與開發人員記錄一個錯誤... – Kamal 2012-07-20 07:42:48

+0

會做,感謝您的幫助! – kittikun 2012-07-20 08:19:18

1

我只是碰到了這一點,我發現了一個醜陋的變通這讓我通過了。以下是我通過議程視圖獲得的東西的方法:

在Fullcalendar的初始化過程中,將defaultView設置爲'month'。接下來,將lazyFetching設置爲true。現在,設置'loading'方法來改變視圖類型。初始化應該看起來像這樣:

$('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: '' 
     },  
     defaultView: 'month', 
     allDayDefault: false, 
     timeFormat: '', 
     allDaySlot: false, 
     editable: false, 
     lazyFetching: true, 
     eventLimit: false,   

     events: 'https://www.google.com/calendar/feeds/mycalendarURL', 

     loading: function(bool) { 
      $('#calendar').fullCalendar('changeView', 'agendaWeek'); 
      } 

    }); 

信不信由你原來的'月'視圖不顯示; agendaweek視圖是唯一一個出現 - 至少我現在在Mac上的Safari中測試它。

基本上這個hack方法將視圖設置爲一個視圖,該視圖似乎正確地收集所有事件,然後視圖切換到我們真正想要看到的視圖。通過啓用lazyFetching,已加載的事件將保持加載。

請注意,如果用戶導航到未來或過去的事件,則需要加載更多事件。當發生這種情況時,即使用戶返回到他開始的位置,所有事情都會再次陷入僵局。對於我的應用程序,我將查看範圍限制在一個較小的日期範圍內,所以這很好。對於其他應用程序,這可能是一個問題。

希望有一天會出現一個合適的解決方案,因爲我在搜索互聯網後試圖找到解決方案後,至少發現另外三個人看到了這個問題。希望我的黑客解決方案能夠幫助其他人,直到這個問題得到正式解決。

相關問題