Nie mogę zrozumieć dlaczego jeżeli w myfunction
mam alert to eventy pobrane z kontrolera w formacie JSON wyświetlają się w kalendarzu, natomiast jeżeli ten alert usunę w debuggerze w przeglądarce tablica myData
ma te dane ale nie jestem w stanie ich wyświetlić w kalendarzu. Wyświetlają się dopiero wtedy jak przesunę tydzień na następny/poprzedni.
$(document).ready(function () {
$().myfunction();
$('#calendar').fullCalendar({
(....)
$.fn.myfunction = function () {
$.get("/BookVisit/TakeBookedEvents/", function (data, status) {
for (var i = 0; i <= data.length; i++) {
myData.push(data[i].loginUser);
}
});
alert('hej');
};
cały kod
@section scripts{
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<script src="~/Scripts/moment.js"></script>
<script src="~/Scripts/moment-timezone.js"></script>
<link href="~/Content/fullcalendar.css" rel="stylesheet" />
<script src="~/Scripts/fullcalendar.js"></script>
<script id="jsbin-javascript">
var clickedEvents = [];
var myData = [];
var myEvents = [];
$.fn.myfunction = function () {
$.get("/BookVisit/TakeBookedEvents/", function (data, status) {
for (var i = 0; i <= data.length; i++) {
myData.push(data[i].loginUser);
}
});
alert('hej');
};
var timeCursor = moment();
var endtime = +moment().add(5, 'days');
while (+timeCursor < endtime) {
var start = +timeCursor;
timeCursor = timeCursor.add(15, 'minutes');
var end = +timeCursor;
myEvents.push({ start: start, end: end });
}
var eventRender = function (event, element) {
$(element).html(moment(event.start).format('h:mm'));
if (myData.indexOf(event.start.format()) >= 0)
{
$(element).addClass('already-clicked');
return element;
}
else {
return element;
}
};
$(document).ready(function () {
$().myfunction();
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'agendaWeek,agendaDay'
},
defaultView: 'agendaWeek',
editable: false,
allDaySlot: false,
selectable: true,
events: myEvents,
eventColor: '#33CC33',
timezone: 'UTC',
eventRender: eventRender,
});
});
</script>
}