我正在将https://kylestetz.github.io/CLNDR/与http://olado.github.io/模板一起使用,并且Safari和Firefox浏览器似乎未返回events数组。我使用console.log(day)进行了验证,并且events数组仅对于这些浏览器为空。 Chrome可以完美运行。
这是我的DOT模板:
<script id="dot-template" type="text/template">
<div id="clndr-3">
<div class="clndr-grid">
<div class="days-of-the-week">
<div class="days">
{{~it.days :day:index}}
{{? day.events.length }}
<a href="{{= day.events[0].url }}">
<div class="{{= day.classes }}">{{= day.day }}</div>
</a>
{{??}}
<div class="{{= day.classes }}">{{= day.day }}</div>
{{?}}
{{~}}
</div>
</div>
</div>
</div>
</script>
这是我的JS:
<script type="text/javascript">
jQuery(document).ready(function($){
let clndrTemplate = doT.template($('#dot-template').html()),
events = <?= json_encode($calendar_array); ?>,
let theCalendarInstance = jQuery('#clndr').clndr({
template: jQuery("#clndr-template"),
events: events,
render: function (data) {
return clndrTemplate(data);
},
});
});
</script>
我的事件数组正在使用PHP构建:
<?php
$calendar_array = array();
foreach( $events as $event ) :
$event_id = $event->ID;
$event_title = $event->post_title;
$event_date = tribe_get_start_date($event_id, false, 'l, F j, Y');
$calendar_array[] = array(
'date' => date('m-d-Y', strtotime($event_date)),
'title' => $event_title,
'url' => get_the_permalink($event_id)
);
endforeach;
?>
日历将为所有浏览器启动,但是,事件不会传递到Safari和Firefox中的DOT模板。