мой босс сказал мне, чтобы проверить kendo ui, особенно чтение планировщика из json. В целях тестирования я написал файл php для вывода json:
<?php
header("Content-Type:application/json");
$cars = array
(
0 => array(
'Id'=>'DN-DP-1596',
'Title'=>'Business Trip to Cologne',
'Description'=>'Appoinment with Acme Inc.',
'StartTimeZone'=>null,
'Start'=>'2016/1/12 07:00 AM',
'End'=>'2016/1/12 09:00 AM',
'EndTimeZone'=>null,
'RecurrenceRule'=>null,
'RecurrenceID'=>null,
'RecurrenceException'=>null,
'IsAllDay'=>false
),
1 => array(
'Id'=>'DN-UQ-1503',
'Title'=>'Business Trip to Cologne',
'Description'=>'Appoinment with Bauer GmbH.',
'StartTimeZone'=>null,
'Start'=>'2016/1/12 09:30 AM',
'End'=>'2016/1/12 10:30 AM',
'EndTimeZone'=>null,
'RecurrenceRule'=>null,
'RecurrenceID'=>null,
'RecurrenceException'=>null,
'IsAllDay'=>false
),
2 => array(
'Id'=>'DN-VH-791',
'Title'=>'Business Trip to Cologne',
'Description'=>'Trading conference',
'StartTimeZone'=>null,
'Start'=>'2016/1/12 01:00 PM',
'End'=>'2016/1/12 03:00 PM',
'EndTimeZone'=>null,
'RecurrenceRule'=>null,
'RecurrenceID'=>null,
'RecurrenceException'=>null,
'IsAllDay'=>false
)
);
$callback = $_GET['callback'];
print $callback.'('.json_encode($cars).')';
Затем я написал html, чтобы проверить планировщик кендо:
<div id="scheduler"></div>
<script>
$("#scheduler").kendoScheduler({ date: new Date("2016/1/13") });
var scheduler = $("#scheduler").data("kendoScheduler");
var dataSource = new kendo.data.SchedulerDataSource
({
transport:
{
read:
{
url:"carService.php",
dataType:"jsonp"}
}
});
dataSource.fetch(function()
{
var cars = dataSource.data();
var dataItem = dataSource.get(0);
console.log(dataItem.Title);
})
К сожалению, я не получаю вывод на консоль или что-нибудь еще, есть идеи по этому поводу? помощь очень ценится, мой босс терроризирует меня!
Я попытался с тем же кодом и внес незначительные изменения в коде. взгляните на код ниже.
test.html
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.common.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.rtl.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.silver.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.mobile.all.min.css"/>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.1.112/js/kendo.all.min.js"></script>
<div id="scheduler"></div>
<script>
var dataSource = new kendo.data.SchedulerDataSource({
transport: {
read: {
url: "test.php",
dataType: "jsonp"}
}
});
dataSource.fetch(function () {
var event = this.at(0);
console.log(event.Title);
});
</script>
test.php — Для данных JSON
<?php
$cars = array
(
0 => array(
'Id'=>'DN-DP-1596',
'Title'=>'Business Trip to Cologne',
'Description'=>'Appoinment with Acme Inc.',
'StartTimeZone'=>null,
'Start'=>'2016/1/12 07:00 AM',
'End'=>'2016/1/12 09:00 AM',
'EndTimeZone'=>null,
'RecurrenceRule'=>null,
'RecurrenceID'=>null,
'RecurrenceException'=>null,
'IsAllDay'=>false
),
1 => array(
'Id'=>'DN-UQ-1503',
'Title'=>'Business Trip to Cologne',
'Description'=>'Appoinment with Bauer GmbH.',
'StartTimeZone'=>null,
'Start'=>'2016/1/12 09:30 AM',
'End'=>'2016/1/12 10:30 AM',
'EndTimeZone'=>null,
'RecurrenceRule'=>null,
'RecurrenceID'=>null,
'RecurrenceException'=>null,
'IsAllDay'=>false
),
2 => array(
'Id'=>'DN-VH-791',
'Title'=>'Business Trip to Cologne',
'Description'=>'Trading conference',
'StartTimeZone'=>null,
'Start'=>'2016/1/12 01:00 PM',
'End'=>'2016/1/12 03:00 PM',
'EndTimeZone'=>null,
'RecurrenceRule'=>null,
'RecurrenceID'=>null,
'RecurrenceException'=>null,
'IsAllDay'=>false
)
);
$callback = $_GET['callback'];
print $callback.'('.json_encode($cars).')';
вывод на консоль:
Business Trip to Cologne
Так что все, что вам нужно изменить в php-файле, повторяя вывод json.
Других решений пока нет …