我正在尝试获取我的数据库中的所有事件,并在我的 UI 中突出显示有事件的日期。现在,我只能使用静态数据来完成它,并且在我的测试代码中,它显示事件名称,我想要的只是突出显示日期而不显示事件名称,我如何获取我实现它?
$('#calendars').fullCalendar({
height: 395,
header: {
// title, prev, next, prevYear, nextYear, today
left: 'prev',
center: 'title',
right: 'next'
},
events: [
{
title : 'event1',
start : '2019-03-01'
},
{
title : 'event2',
start : '2019-03-05',
},
{
title : 'event3',
start : '2019-03-15'
},
{
title : 'event5',
start : '2019-05-15'
}
],
eventRender: function (event, element, view) {
// like that
var dateString = moment(event.start).format('YYYY-MM-DD');
$('#calendar').find('.fc-day-number[data-date="' + dateString + '"]').css('background-color', '#FAA732');
},
});
这个的结果是这样的:
我打算像这样使用 ajax:
events: [
$.ajax({
type: 'GET',
url: '/events',
success: function(events){
//return the result as the events data.
}
});
],
但我不知道如何实现它。这是我的事件 Controller ;
public function allEvents(){
$events = Events::whereNotNull('event_date')->get();
return $events;
}
我怎样才能实现我的目标?
最佳答案
你可以尝试这样的事情:
events: function(start, end, timezone, callback) {
$.ajax({
url: "http://yourwebsite.com/events", // complete URL here.. you need to change it
dataType: "json",
type: 'GET',
success: function(data){
callback(data);
},
error: function(error){
console.log("Error:");
console.log(error);
}
})
}
并更改 Controller 代码以返回 JSON
public function allEvents(){
$events = Events::whereNotNull('event_date')->get();
// make sure events data has title and start values returned from the database.
return response()->json($events);
}
关于javascript - 如果有使用 fullCalendar 的事件,则突出显示日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322138/