Sto usando il plugin jQuery full calendar in congiunzione con backbone.js e con un problema in cui non viene visualizzato correttamente al momento del primo caricamento.calendario completo non visualizzato quando caricato (con backbone)
Questa è la mia funzione di rendering per la vista dorsale che contiene il calendario:
render: function() {
var that = this;
// DEBUG:
// console.log({entries: data});
this.$el.html(this.template(this.serialize()));
this.$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
height: that.$el.parent().height()
});
// prints undefined
console.log(this.$('#calendar').fullCalendar('getView').title);
window.setTimeout(function() {
this.$('#calendar').fullCalendar('changeView','agendaWeek');
}, 500);
return this;
}
Potete vedere che ho un timeout impostato per 500 ms inclusi. Quando tardo 500 ms e poi cambi la vista in agendaWeek, verrà visualizzata. Tuttavia, se non ritardo, il calendario non viene visualizzato. Non ci sono errori stampati in entrambi i casi.
Sono in perdita di cosa provare qui o cosa potrebbe andare storto. C'è una richiamata per la creazione del calendario che mi manca da qualche parte nei documenti?
Grazie
EDIT: potrebbe essere che l'html() funciton non è completa e causando un problema?
Forse a Fullcalendar interessa la dimensione o la posizione del suo elemento? Mi sono imbattuto in problemi simili con Google Maps e il trucco "setTimeout (..., 0)" ha funzionato per me. –
Sono abbastanza sicuro che il problema sia ciò a cui allude @muistooshort. Ho usato il plug-in completo del calendario e si preoccupa della "dimensione e posizione" del suo elemento. – Jack
Rimane il problema se si codifica l'altezza? Cosa restituisce questo.serialize()? –