【问题标题】:javascript kendo scheduler with json data moves events only once带有 json 数据的 javascript kendo 调度程序仅移动一次事件
【发布时间】:2016-01-27 13:39:50
【问题描述】:

我有一个剑道调度程序,但我遇到了移动事件的问题。我一次只能移动一个事件,然后我什至无法抓取任何事件。我认为日期有问题,但我真的不知道为什么。我用 2-3 个事件尝试了dataSource,它正在工作,但是当我将完全相同的数据放入 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);

【问题讨论】:

  • 实际上我知道我的日期有问题。当我有一个数据源时,虽然在 javascript 中有数据,但没有问题,我认为这是因为缺少新的 Date()。不过,我在显示事件方面没有问题。我真的看不出移动事件有什么问题

标签: javascript php kendo-ui scheduler


【解决方案1】:

由于您在模型中将 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 发送的数据进行比较,看看有什么不同。

【讨论】:

  • 如何使用 parameterMap 来格式化我的日期,比如 new Date('TT_START_DATETIME')?我尝试过这样的解析,但没有运气: parse: function(response) { var tasks = []; for (var i = 0; i
猜你喜欢
  • 2017-05-07
  • 2019-01-15
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多