0

fullcalandar jquery プラグインで作業していますが、今はカレンダーの再取得にこだわっています。2 つのイベント ソースがあり、カレンダー ヘッダーにカスタム更新ボタンを作成しました。ユーザーが更新ボタンを押すたびに、2 番目のイベント ソースからのみイベントを再フェッチしたいと考えています。

fullcalendar refetchEvents でパラメーターを渡し、単一のイベント ソースから再フェッチする方法はありますか。

events: function(start, end, timezone,callback) {
            $.ajax({
                url:  //FIRST EVENT SOURCE
                dataType: 'json',

                success: function(response) {
                    //attaching the response to the calendar
          }

          $.ajax({
                url:  // SECOND EVENT SOURCE
                dataType: 'json',

                success: function(response) {
                    //attaching response to calendar
                 }
             });
       }

ユーザーがカスタムの [更新] ボタンをクリックするたびに、実行しています$("#calendar").fullcalendar('refetchEvents');-- これにより、カレンダー全体が再取得されます (最初と 2 番目のイベント ソース)

私が期待しているのは、2 番目のイベント ソースに対してのみ再フェッチを行いたいということです。

4

1 に答える 1

1

編集: バージョン 2.8.0 が本日リリースされ、単一のイベント ソースのフェッチをサポートしています。以下の私の答えは、古いバージョン用です。

最初のソースを更新したくないが、画面上の最初のソースからのイベントを保持する必要があるというのは正しいですか? 次に、それらを一時キャッシュに残します。次に、グローバル変数を使用して、ユーザーが [更新] をクリックしたことを確認します。

var g_FirstSourceEventsCache = null;
var g_IsRefreshClicked = false;

events: function(start, end, timezone,callback) {

          if (g_IsRefreshClicked)   {
             //do not reload from server, load from cache
             callback(g_FirstSourceEventsCache);
             g_IsRefreshClicked = false;
          } else {
            $.ajax({
                url:  //FIRST EVENT SOURCE
                dataType: 'json',

                success: function(response) {
                    //attaching the response to the calendar

                    //save to cache
                    g_FirstSourceEventsCache = myFirstSourceEventsThatIPassedToCallback;
            }
          }

          //second source is always refreshed
          $.ajax({
                url:  // SECOND EVENT SOURCE
                dataType: 'json',

                success: function(response) {
                    //attaching response to calendar
                 }
             });
       }
于 2016-06-21T04:29:59.020 に答える