4

私は自分のカレンダーで 3 つのビューを使用しています。月、アジェンダウィーク、アジェンダデイです。イベントを追加したら、refetchEvents を呼び出して新しいイベントを表示します。アジェンダウィークまたはアジェンダデイからイベントを追加すると、もちろん、再取得によってその週または日のイベントが取得されます。次に月表示に切り替えると、その週またはその日のイベントしか表示されません。

viewDisplay に refetchEvents を追加してみました。これに関する問題は、すべてのイベントの重複を引き起こす初期ロードで実行されることです。カレンダーの読み込み中に refetchEvents が呼び出されないようにする方法はありますか?

ビューを切り替えるときに再フェッチを強制する他の方法はありますか?

4

3 に答える 3

13

フルカレンダーを作成する場合、ビューが変更されるたびに起動されるviewDisplayメソッドがあります。論理的には、これをviewChangedイベントとして使用できます。例えば:

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

バージョン1.6.3の時点で、使用する正しいコールバックはviewRender

$('#calendar').fullCalendar({
    ...
    viewRender: function(view, element) { alert('new view: ' + view.name); }
});
于 2011-05-05T03:15:18.583 に答える
8

fullcalendar ライブラリ自体を強化するのは良いアイデアのように思えます。ライブラリは、「viewChanged」または「viewChanging」イベントのコールバック関数を提供できます。「AJAXディープリンク」を作成する必要がある場合、ビューがいつ変更されたかを知る必要があるため、そのようなことは本当に欠けています。

更新:イベントを追加した後にカレンダーの「lazyFetching」オプションhttp://arshaw.com/fullcalendar/docs/event_data/lazyFetching/を変更するとどうなりますか?

于 2010-03-10T14:32:44.287 に答える