Pergunta

Eu estou usando 3 visualizações no meu calendário: mês, agendaWeek e agendaDay. Depois que eu adicionar um evento, eu chamo refetchEvents para exibir o novo evento. Se eu adicionar um evento a partir agendaWeek ou agendaDay, o refetch vai, naturalmente, pegar os eventos da semana ou dia. Se eu, em seguida, mudar para a vista mensal, só tenho os eventos da semana ou do dia.

Eu tentei adicionar um refetchEvents sobre viewDisplay. O problema com isso é que ele é executado na carga inicial que causa a duplicação de todos os eventos. Existe uma maneira eu posso parar refetchEvents de ser chamado durante a carga de calendário?

Existe alguma outra maneira de forçar o refetch ao trocar pontos de vista?

Foi útil?

Solução

soa como uma boa ideia para um enhancment à biblioteca FullCalendar si - a biblioteca poderia fornecer função de retorno para "viewChanged" ou mesmo evento "viewChanging". Tal coisa está realmente faltando, porque, se você precisa para criar "AJAX Deep Linking", você também precisa saber quando a vista mudou.

Update: o que acontece se você mudar a opção "lazyFetching" http://arshaw.com / FullCalendar / docs / event_data / lazyFetching / do seu calendário depois de adicionar o evento?

Outras dicas

Ao criar FullCalendar há o método viewDisplay que é disparado sempre que a visualização é alterada. Logicamente você pode usar isso como um evento viewChanged. Por exemplo:

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

Parece que a partir da versão 1.6.3 o retorno correto uso é viewRender

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

Não uma idéia perfeita, mas apenas adicionando mais uma alternativa ...

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

});

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

});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top