2017-06-14 9 views
2

カレンダーにドロップされたフルカラーイベントの終了日を調整するにはどうすればよいですか?私はAngularJSのUIカレンダーとfullcalendarスケジューラ-1.3.2を使用していると私は私が最初のイベントを削除すると、すべてが正常に動作し、新たに受信したイベント受け取ったfullcalendarイベントの設定終了日がエラーで失敗する

function eventReceive(event) { // called when a new event is received 
    console.log(event.start.format()); // 2017-06-14T12:00:00 
    console.log(event.end);    // null 
    event.end = moment(event.start).add(3600, 'seconds'); 
    console.log(event.end.format());  // 2017-06-14T13:00:00+00:00 
} 

を処理し、以下の機能を持っています。 2番目のイベントを削除すると、以下のエラーが発生します。 3600ではなく0秒で終了日を増やすと(イベントの継続時間が0でほとんど意味がないことを意味します)、エラーは発生しません。

Uncaught TypeError: Cannot read property 'apply' of undefined 
at n.fb.time (fullcalendar.min.js:6) 
at r.d.internalApiVersion.o.isValidDate (scheduler.min.js:7) 
at r.d.internalApiVersion.o.spanToSegs (scheduler.min.js:7) 
at r.d.internalApiVersion.r.spanToSegs (scheduler.min.js:8) 
at r.eventSpanToSegs (fullcalendar.min.js:7) 
at r.eventRangeToSegs (fullcalendar.min.js:7) 
at Array.<anonymous> (fullcalendar.min.js:7) 
at Function.each (jquery.js:382) 
at r.eventsToSegs (fullcalendar.min.js:7) 
at renderFgEvents (fullcalendar.min.js:7) 
    fb.time @ fullcalendar.min.js:6 
    d.internalApiVersion.o.isValidDate @ scheduler.min.js:7 
    d.internalApiVersion.o.spanToSegs @ scheduler.min.js:7 
    d.internalApiVersion.r.spanToSegs @ scheduler.min.js:8 
    eventSpanToSegs @ fullcalendar.min.js:7 
    eventRangeToSegs @ fullcalendar.min.js:7 
    (anonymous) @ fullcalendar.min.js:7 
    each @ jquery.js:382 
    eventsToSegs @ fullcalendar.min.js:7 
    renderFgEvents @ fullcalendar.min.js:7 
    renderEvents @ fullcalendar.min.js:7 
    d.internalApiVersion.r.renderEvents @ scheduler.min.js:7 
    displayEvents @ fullcalendar.min.js:8 
    (anonymous) @ scheduler.min.js:6 
    d.internalApiVersion.X.whenResources @ scheduler.min.js:6 
    d.internalApiVersion.X.displayEvents @ scheduler.min.js:6 
    o @ fullcalendar.min.js:6 
    s @ fullcalendar.min.js:6 
    p @ fullcalendar.min.js:6 
    reportExternalDrop @ fullcalendar.min.js:8 
    reportExternalDrop @ scheduler.min.js:6 
    interactionEnd @ fullcalendar.min.js:7 
    trigger @ fullcalendar.min.js:7 
    handleInteractionEnd @ fullcalendar.min.js:7 
    handleInteractionEnd @ fullcalendar.min.js:7 
    endInteraction @ fullcalendar.min.js:7 
    f @ jquery.js:512 
    dispatch @ jquery.js:4435 
    r.handle @ jquery.js:4121 

私はStackOverflowのhow to get start and end date of external dragged and dropped event on fullcalendar同様の問題を発見したが、そこ終了日は、すべてのドロップイベントのように、ドロップハンドラで調整しています。また、私は$(この).dataのは関数ではありませんので、

UPDATE

$(これは)AngularJSで正しく動作しないことを感じて別の症状:イベントを変更すると、バックに終了日を設定した後UpdateEventはを呼び出しますnull

function eventReceive(event) { // called when a new event is received 
    // here everything as above 
    console.log(event.start.format()); // 2017-06-14T12:00:00 
    console.log(event.end);    // null 
    event.end = moment(event.start).add(3600, 'seconds'); 
    console.log(event.end.format());  // 2017-06-14T13:00:00+00:00 

    // here additional test code 
    event.title = 'TEST'; 
    uiCalendarConfig.calendars.myCalendar.fullCalendar('updateEvent', event); 
    console.log(event.title);    // TEST, ok 
    console.log(event.end);    // null, not ok 
} 
+0

私は同じ問題を見ています。私はhtml要素のdata-event属性にイベントオブジェクトを配置します。終了値は、外部イベントのドロップコールバックでは問題ありませんが、eventReceiveでは、同じイベントを2回目にドラッグした後にのみnullに戻ります。私はFullCalendarバージョン3.4.0を使用しています。 – Jonathan

答えて

0

私はそれを理解しました。問題は、最初に削除するときに外部イベントをカレンダーにドラッグしているときに、html要素のdata-duration属性を適切に設定していたことです。それをカレンダーから削除した後にそれを追加した後、私はそのデータ期間属性を適切に設定していませんでした。その属性はeventReceiveコールバックの終了日を駆動します。

は、デュレーションデータ属性についてのドキュメントを参照してください:https://fullcalendar.io/docs/dropping/droppable/

関連する問題