如何获取fullcalendar.io的正确格式

时间:2019-02-06 18:14:34

标签: javascript json fullcalendar

我一直试图在日历中显示我的数据库条目。步骤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和开发者工具查看变量控制台到日志。

1 个答案:

答案 0 :(得分:1)

这个问题尚不清楚具体的问题是什么,但似乎有些事情已经解决了。

根据FullCalendar docsAnimal type: cats name: moose color: black & white alias: Moosalini Animal type: dogs name: scout, sulley color: black & white alias: skump, skulley 属性可以是多种事物,包括对象数组,这就是您试图传递它的样子。这行代码:

events

似乎令人恐惧。如果您要构建要传递的对象数组(这就是他们的文档所说的),则不是这样。您正在构建字符串“对象”,而不是对象数组。您继续追加到该字符串,然后只需将该字符串推入一个空数组即可。我假设您剩下的是一个由一个混乱的字符串组成的数组。

apptDeat += '{"title":"'+title+'","description":"'+description+'","id":"'+id+'","start":"'+start+'","end":"'+end+'","color":"blue" },'; 不应是数组,而应是一个对象,并且在for循环内,应将apptDeat的值分配为一个对象,然后将其推入apptDeat数组,例如所以:

events

Sidenote,@ @代码格式。希望那只是StackOverflow搞砸了。