2017-10-12 8 views
2

내 POC 프로젝트에서 FullCalendar를 사용하고 있습니다. 내가 가지고있는 것은 두 개의 데이터 격자 (jTable 사용)입니다. 거기에 몇 개의 행을 넣으려면 '요청 보내기'를 클릭하고 JSON이 생성됩니다. 그것은 내 백엔드 응용 프로그램에 보내지고, 그 다음에 처리되고 응답 (여전히 JSON에서)이 반환됩니다. 내 AJAX 성공 핸들러는이 응답을 받아 달력에 넣기 위해 JavaScript 객체로 변환합니다. 이 같은 구조를 가졌다있는 한Fullcalendar 로컬 변수의 이벤트 새로 고침

는 :

$.post({ 
    // options cut for clean output 
    success: function(data, textStatus, jqXHR) { 
     var eventsToPut = []; 

     $.each(data.taskList, function(k, v) { 
      // OBJECT is created when processing response 
      eventsToPut.push (OBJECT); 
     }); 

     $('#calendar').fullCalendar({ 
      events: eventsToPut, 
      // config of calendar cut 
     });   
    }        
}); 

그것은 잘 작동합니다. 응답이 렌더링되고 일정이 캘린더에 표시됩니다. 문제는 데이터 그리드에서 데이터를 변경하고 요청을 백엔드로 다시 보낼 때입니다. 응답이 유효하지만 달력이 이벤트를 새로 고치지 않습니다.

그래서 EMPTY 이벤트가있는 캘린더 생성을 jQuery.ready() 섹션에 추출하고 이벤트가 올 때 캘린더를 새로 고침/업데이트하려고 결정했습니다. 지금까지 '성공'처리기에서 시도했습니다 :

$('#calendar').fullCalendar('refetchEvents'); //It should work with feeds but I've tried anyway 
$('#calendar').fullCalendar({ events: eventsToPut}); 
$('#calendar').fullCalendar('updateEvents', eventsToPut); 

그러나 캘린더는 데이터를 새로 고치지 않습니다. 누구든지 새 데이터로 캘린더를 새로 고칠 수 있습니까? 모든

+0

방법을 추가 할 수 addEventSource을 사용할 수 있습니다, 다음 removeEvents

$('#calendar').fullCalendar('removeEvents', function() { return true; }); 

를 사용하여 달력에서 모든 이벤트를 제거 https://fullcalendar.io/docs/event_data/addEventSource/) 성공 콜백에서? 새로운 일련의 이벤트. 이전 이벤트를 먼저 제거해야 할 수도 있습니다. –

답변

1

먼저, (당신이 [addEventSource``] 사용에 대한 새로운 이벤트

var eventsToPut = []; 

$.each(data.taskList, function(k, v) { 
    // OBJECT is created when processing response 
    eventsToPut.push(OBJECT); 
}); 

$('#calendar').fullCalendar('addEventSource', eventsToPut, true); 
+0

작동하지만 문제는 이전 작업이 여전히 존재한다는 것입니다 (예 : 기존 항목을 편집하는 경우). 반환 된 응답이 다시 렌더링됩니다. – Chlebik

+0

$ ('# calendar')을 추가하여 수정했습니다. fullCalendar ('removeEventSources'); – Chlebik