我正在使用最新版本的FullCalendar(http://fullcalendar.io)。 FullCalendar會顯示繪製客戶訪問時間的日曆。它在內部存儲日曆事件,以便更快地倒退和前進到各個月份。它正在爲當月,比上月和上,直到我回到二月2017年,在此期間,我得到的JavaScript控制檯以下錯誤信息:FullCalendar無法讀取屬性'_id'null
Uncaught TypeError: Cannot read property '_id' of null
at buildEventFromInput (fullcalendar.js:13527)
at fullcalendar.js:12980
at Object.success (fullcalendar.js:13110)
at i (jquery-3.2.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2)
at A (jquery-3.2.1.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-3.2.1.min.js:4)
該錯誤在火之前獲取日期信息的AJAX函數,但只是爲了確保我運行了該月的查詢,並且數據看起來很好。一旦錯誤發生,如果我回到我已經查看過的幾個月,我不會再看到這些事件。該錯誤消息顯然會弄髒內部數據存儲,儘管JavaScript仍在運行,否則我將無法再切換幾個月。
我希望熟悉FullCalendar的人看到了這個錯誤,然後才能指向正確的方向。該應用程序受到登錄信息的保護,幷包含真實的客戶端信息,因此構建用於測試目的的模型將會相當複雜,所以我不需要花費一兩個小時的時間 - 但如果沒有明顯的答案他們自己,我會咬下子彈,並做到這一點。
感謝您的幫助!
編輯:這裏是一個測試用例。
http://scripturemenu.com/test/index.html
的錯誤消息是從我上面的報道略有不同(它試圖讀取屬性「hasTime」,而不是未定義的屬性「_id」) - 當我切換出與真正的客戶端名稱所發生單詞「客戶名稱」和一個ID,但它仍然發生在你打2月份時。
有趣的是,當我使用代碼來處理這個測試用例時,即使在我通過二月份日曆顯示日期之後,也會在一月份觸發AJAX調用。
沒有看到您的日曆設置和一些示例數據,真的不可能說出什麼問題。我不認爲完整的模型是必要的,但是查看導致錯誤的數據會很有用 - 如果在某個特定時間段內進行ajax調用時發生錯誤,我猜可能有一些東西缺少輸入數據 - 可能是一個空對象,它應該具有「_id」屬性。 – ADyson
你究竟是什麼意思?「它在內部存儲日曆事件以使其更快地返回到前幾個月」。您是否正在使用fullCalendar將所有事件數據預先加載很長一段時間?錯誤是否發生在需要加載更多數據的地方?還是應該還有那個月份預先加載的數據? – ADyson
FullCalendar存儲事件數據,當您查看數月的信息時 - 我還沒有深入瞭解源代碼,知道它是如何工作的,但我可能不得不最終去那裏。我不知道它是否使用全局JavaScript變量,數據屬性或什麼。您不會重新加載頁面以更改月份,因此無需另外進行AJAX往返 – TulsaMJ