我一直试图在日历中显示我的数据库条目。步骤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和开发者工具查看变量控制台到日志。
答案 0 :(得分:1)
这个问题尚不清楚具体的问题是什么,但似乎有些事情已经解决了。
根据FullCalendar docs,Animal 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搞砸了。