我有一个剑道调度程序,我遇到移动事件的问题。我一次只能移动一个事件,然后我甚至无法抓住任何事件。我认为日期有问题,但我真的无法弄清楚原因。我尝试了dataSource
2-3个事件并且它正在工作,但是当我在php中放置完全相同的数据并将其作为json返回时。它不起作用。
任何帮助都将不胜感激。
$("#scheduler").kendoScheduler({
date: new Date(),
startTime: new Date(today2()),
timezone: "Etc/UTC",
currentTimeMarker: false,
height: 800,
views:
[
"week",
{ type: "month", selected: true, eventHeight: 60}
],
dataSource:
{
transport:
{
read:
{
url: "tasks.php",
dataType: "json"
},
batch: true,
parameterMap: function (options, operation)
{
if (operation === "read") {
var scheduler = $("#scheduler").data("kendoScheduler");
var result =
{
start: scheduler.view().startDate(),
end: scheduler.view().endDate()
}
return kendo.stringify(result);
}
return kendo.stringify(options);
}
},
schema:
{
model:
{
id: "taskId",
fields:
{
taskId: { type: "number", from: "TT_CODE" },
start: { type: "date", from: "TT_START_DATETIME"},
end: { type: "date", from: "TT_END_DATETIME"},
title: { from: "TT_EDIT"}
}
}
}
}
});
带有json数据的php文件:
$json[0]['TT_CODE'] = 1;
$json[0]['TT_START_DATETIME'] = "2016-01-16 15:00:00";
$json[0]['TT_END_DATETIME']= "2016-01-16 16:00:00";
$json[0]['TT_EDIT'] = "Fast and furious 6";
echo json_encode($json);
答案 0 :(得分:0)
由于您在模型中指定了start
和end
作为日期,因此调度程序希望收到格式正确的日期。虽然JSON将日期作为字符串传递,但javascript仍然希望格式化日期字符串。
在你的情况下,它将是:
$json[0]['TT_CODE'] = 1;
$json[0]['TT_START_DATETIME'] = "2016-01-16T15:00:00.000Z";
$json[0]['TT_END_DATETIME']= "2016-01-16T16:00:00.000Z";
$json[0]['TT_EDIT'] = "Fast and furious 6";
您也可以保留日期,并使用parameterMap
函数中的自定义逻辑处理字符串。
作为旁注,如果您对类型格式有疑问,请进入浏览器控制台并查看网络选项卡。您将能够将工作服务发送的数据与PHP发送的数据进行比较,看看差异在哪里。