fullcalendar を使用してスケジューリング コンポーネントを書き直していますが、何か足りないと思います。最初はバージョン 1.5.4 を使用していましたが、その後 1.6.3 にアップグレードし、カレンダーは Backbone.js ビューの一部として含まれています。ビューはバックボーン コレクションを利用しており、フェッチが成功するとカレンダーが更新され、ここで問題が発生します。
1.5.4 を使用して、すべてのイベントをスケジュールにレンダリングする「refetchEvents」を呼び出して、スケジュールを更新することができました。キッカーは、1.6.3 では、最初にすべてのイベントが削除され、追加された後に全体が一瞬フラッシュするようにスケジュールされているように見えることです。1.5.4 はこれをしませんでした。
何が起こっているのかを理解するために fullcalendar コードを調べたところ、1.6.3 の refetchEvents が次のようになっていることがわかりました。
1.6.3
function refetchEvents() { // can be called as an API method
clearEvents();
fetchAndRenderEvents();
}
1.5.X
function refetchEvents() {
fetchEvents(currentView.visStart, currentView.visEnd); // will call reportEvents
}
私がやりたいことは、必要に応じて既存のアイテムを更新または削除し、最初にすべてを削除せずに (clearEvents() を回避して) 新しいアイテムを追加することです。
バックボーン ビューで updateEvent または destroy を呼び出して、現在レンダリングされているものを手動で追跡する必要がありますか? うまくいけば、私は理にかなっています。