2017-04-13 15 views
0

私はタイムオフカレンダーで作業中です(月のみ表示モードを使用しています)。FullCalendar:イベントアレイを動的に更新することができません

同じ日に複数のイベントを防止したいと考えています。ここで私のコードはどのように見えるのですか(この質問のために簡略化されています)。

// Get current Events. 
var currentEvents = $('#calendar').fullCalendar('option', 'events'); 

// Do validation process here... 

var newTimeOffEvent = { 
    title:  'Time Off', 
    start:  $('#txtStartDate').val(), 
    end:  $('#txtEndDate').val(), 
    allDay:  true, 
    editable: true 
}; 

// Render the new single event on the calendar. 
$('#calendar').fullCalendar('renderEvent', newTimeOffEvent, true); 

// Trying to update the Events array in the Full Calendar. 
$('#calendar').fullCalendar('option', 'events', $.merge([], currentEvents, [newTimeOffEvent])); 

次のコードの実行には、新しいイベントがイベントの配列ではないので、コードの最後の行は、作品にはいないようです。

私はイベントの配列を更新するFull Calendar's docで見つかった多くの機能を試みたが、成功せずにきました: updateEvents(メソッド)ClientEventsへ(メソッド)、等...

たぶん組み合わせがあります機能の私は考えていなかった...

ありがとう!

答えて

0

これは機能します。私はちょうどフルカレンダーの現在のイベントを取得するために適切な関数を使用していませんでした。代わりにオプション>イベントの、私はClientEventsへ機能を呼び出すために必要な、以下を参照:

// Get current Events. 
var currentEvents = $('#calendar').fullCalendar('clientEvents'); 

// Do validation process here... 

var newTimeOffEvent = { 
    title:  'Time Off', 
    start:  $('#txtStartDate').val(), 
    end:  $('#txtEndDate').val(), 
    allDay:  true, 
    editable: true 
}; 

// Render the new single event on the calendar. 
$('#calendar').fullCalendar('renderEvent', newTimeOffEvent, true); 

renderEventClientEventsへ更新しているので、以下のコードのブロックは、もはや有効ではありません。

$('#calendar').fullCalendar('option', 'events', $.merge([], currentEvents, [newTimeOffEvent])); 

私の混乱が誰かを助けたことを願って。

関連する問題