带有json数据的javascript kendo调度程序仅移动一次事件

时间:2016-01-27 13:39:50

标签: javascript php kendo-ui scheduler

我有一个剑道调度程序,我遇到移动事件的问题。我一次只能移动一个事件,然后我甚至无法抓住任何事件。我认为日期有问题,但我真的无法弄清楚原因。我尝试了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);

1 个答案:

答案 0 :(得分:0)

由于您在模型中指定了startend作为日期,因此调度程序希望收到格式正确的日期。虽然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发送的数据进行比较,看看差异在哪里。