[英]How to get right format for fullcalendar.io
我一直試圖在日歷中顯示我的數據庫條目。 步驟1是從服務器獲取json格式的數據。 步驟2:遍歷數據以構建數組。 第3步根據完整日歷規范構建數組數組。
我似乎對步驟1和2做得很好,並且如果按所示方式剪切並粘貼結果,它會起作用。 日記條目將顯示在其應放置的位置。 嗚呼。 但是,隨着時間的流逝,數據每天都會變化,並且希望此數據能夠自動運行而無需剪切和粘貼。
大多數時候,我會得到一個索引數組0:... 1:... 2:...,我認為這可能就是為什么它不起作用的原因。 當我將任何一個文本變量粘貼為數據(文本)時,我什么也沒得到;當我將數據推入數組時,它似乎格式確定,但仍不顯示。 最令人沮喪。
事實證明,我采用的方法是正確的。 但是,我使用了一個變量,並將其稱為日歷,該日歷在工作中投入了扳手。 這是一個編碼問題,但是在其他頁面中。
這是我分解的代碼以及到達的位置,這並不優雅,因為我將它帶到了一定水平的文本上,以便可以剪切和粘貼文本進行測試-並且在我可以正常工作時:
// get appointments
let events=new Array(); let apptDeat=new Array(); let start; let end; let id; let title=' '; let description=' ';
$.get('appointmentsList', function(apptList) {
console.log('apptList1:', apptList, ' Count: ',apptList.Count);
for (let x=0; x < apptList.Count; ++x) {
if (apptList.Items[x].oDdate) {
start = moment(apptList.Items[x].oDdate).format("YYYY-MM-DD"); start += 'T'+apptList.Items[x].oDtime;
} else { start =0; }
if (apptList.Items[x].oDEdate) {
end = moment(apptList.Items[x].oDEdate).format("YYYY-MM-DD"); end += 'T'+apptList.Items[x].oDEtime;
} else { end =0; }
if (apptList.Items[x].oDNumber) { title = apptList.Items[x].oDNumber; } else { title=' '; }
if (apptList.Items[x].oDTopic) { description = apptList.Items[x].oDTopic; } else { description=' '; }
id=apptList.Items[x].Id;
apptDeat += '{"title":"'+title+'","description":"'+description+'","id":"'+id+'","start":"'+start+'","end":"'+end+'","color":"blue" },';
}
apptDeat = apptDeat.substring(0, apptDeat.length-1);
events.push(apptDeat);
console.log('event: ', event, ' events: ', events, ' apptDeat: ', apptDeat);
let today = new Date();
let dateInput;
$('#calendar').fullCalendar({
eventClick: function(eventObj) { appDetail(eventObj.id); },
events: events
//[ {"title":"EVE0106820","description":" ","id":"apptDetails:8171433761442206","start":"2019-02-12T08:30","end":"2019-02-13T05:31" },{"title":"EVE0107006","description":" ","id":"apptDetails:8171581388491175","start":"2019-02-07T08:31","end":"2019-02-08T17:31" },{"title":"EVE0106551","description":"AWS DevOps","id":"apptDetails:8171864774477945","start":"2019-01-28T09:00","end":"2019-01-31T16:00" } ]
});
順便說一句,我正在使用Chrome和開發者工具來查看日志的變量控制台。
這個問題尚不清楚具體的問題是什么,但似乎有些事情已經解決了。
根據FullCalendar docs的說法 , events
屬性可以是多種事物,包括對象數組,這就是您試圖傳遞它的方式。 這行代碼:
apptDeat += '{"title":"'+title+'","description":"'+description+'","id":"'+id+'","start":"'+start+'","end":"'+end+'","color":"blue" },';
似乎很恐怖。 如果您要構建要傳遞的對象數組(這就是他們的文檔所說的),則不是這樣。 您正在構建字符串“對象”,而不是對象數組。 您繼續追加到該字符串,然后只需將該字符串推入一個空數組即可。 我假設您剩下的是一個由一個混亂的字符串組成的數組。
apptDeat
不應為數組,而應為對象,並且在for循環內,應為apptDeat作為對象分配值,然后將其推送到events
數組,如下所示:
apptDeat = {
title,
description,
id,
start,
end,
color: "blue"
};
events.push(apptDeat);
旁注,@表示代碼格式。 希望那只是StackOverflow搞砸了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.