Pregunta

Estoy usando 3 puntos de vista en mi calendario: meses, agendaWeek y agendaDay. Después añado un evento, que llamo refetchEvents para mostrar el nuevo evento. Si añado un evento de agendaWeek o agendaDay, la refetch se agarra por supuesto, los eventos de la semana o el día. Si entonces me cambio a la vista del mes, sólo tengo los eventos de la semana o al día.

He intentado añadir un refetchEvents en viewDisplay. El problema con esto es que se ejecuta en la carga inicial que provoca la duplicación de todos los eventos. ¿Hay alguna manera de detener refetchEvents de ser llamado durante la carga del calendario?

¿Hay alguna otra manera de forzar la refetch al cambiar de vista?

¿Fue útil?

Solución

suena como una buena idea para una enhancment a la biblioteca fullcalendar sí mismo - la biblioteca podría proporcionar una función de devolución de llamada para "viewChanged" o incluso evento "viewChanging". Tal cosa es realmente falta, ya que, si es necesario crear "AJAX deep linking", también es necesario saber cuando el punto de vista ha cambiado.

Actualización: lo que sucede si se cambia el "lazyFetching" opción http://arshaw.com / fullcalendar / docs / event_data / lazyFetching / de su calendario después de agregar el evento?

Otros consejos

Al crear fullcalendar no es el método viewDisplay que se dispara cada vez que se cambia la vista. Lógicamente se puede utilizar esto como un evento viewChanged. Por ejemplo:

$('#calendar').fullCalendar({
    ... 
    viewDisplay: function(view) { alert('viewDisplay(' + view + ')'); }
});

Parece que a partir de la versión 1.6.3 la devolución de llamada correcta a utilizar es viewRender

$('#calendar').fullCalendar({
    ...
    viewRender: function(view, element) { alert('new view: ' + view.name); }
});

No es una idea perfecta, pero sólo añadir una alternativa más ...

$('.fc-month-button').click(function () {

});

$('.fc-agendaWeek-button').click(function () {

});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top