簡體   English   中英

如何獲得fullcalendar.io的正確格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM