Могу ли я поставить расписание в fullcalendar как AJAX? - PullRequest
0 голосов
/ 17 октября 2018

Хочу добавить возможность расписания в fullcalendar, Laravel.Метод работает, как и ожидалось, однако я не понимаю, что делать с данными ответа.

$('#calendar').fullCalendar({
        header: {
        left : 'today, prev,next',
        center: 'title',
        right : '',
      },
        locale:'ko',
        height:'parent',
        events : function(start, end, timezone, callback){
            var month = $('#calendar').fullCalendar('getDate').format('YYYY-MM');
            var url = '{{route('reservation.get_schedule',[request()->id])}}';
            alert(url)
            $.ajax({
                type : 'get',
                data : {'date' : month},
                url : url,
                datatype : 'json',
                success : function(data){
                    console.log(data); // How do I use the data
                }
            });
        }
    });

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Документация для событий как функции гласит:

[Функция] ... также будет дана callback, функция, которая должна бытьВызывается, когда пользовательская функция события генерирует свои события.Функция события отвечает за то, чтобы обратный вызов вызывался с массивом объектов события.

На этой странице также есть пример, где функция обратного вызова используется для передачи данных события, возвращаемых изВызов AJAX в fullCalendar.

Так что в вашем случае (при условии, что ваши данные о событиях уже имеют формат, требуемый для fullCalendar и не нуждаются в преобразовании), вы просто добавили бы вызов этой функции в свой "успех""обратный вызов:

events : function(start, end, timezone, callback){
  var month = $('#calendar').fullCalendar('getDate').format('YYYY-MM');
  var url = '{{route('reservation.get_schedule',[request()->id])}}';
  alert(url)
  $.ajax({
    type : 'get',
    data : {'date' : month},
    url : url,
    datatype : 'json',
    success : function(data){
      console.log(data);
      callback(data); //pass the event data to fullCalendar via the provided callback function
    }
  });
}
0 голосов
/ 17 октября 2018
$('#calendar').fullCalendar({
events: function(start, end, timezone, callback) {
    $.ajax({
        url: 'myxmlfeed.php',
        dataType: 'xml',
        data: {
            // our hypothetical feed requires UNIX timestamps
            start: start.unix(),
            end: end.unix()
        },
        success: function(doc) {
            var events = [];
            $(doc).find('event').each(function() {
                events.push({
                    title: $(this).attr('title'),
                    start: $(this).attr('start') // will be parsed
                });
            });
            callback(events);
        }
    });
}

});

DOC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...