2014-10-26 4 views
0

У меня есть следующий код, который фильтрует FullCalendar по датам, содержимому элементов и т. Д. Проблема у меня есть, фильтр не соблюдается при изменении месяца. Кажется, что календарь внутренне кэширует исходный источник.Фильтр очищается при изменении месяца

Может ли кто-нибудь помочь?

$(document).ready(function() { 

    $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,basicWeek,basicDay' 
     }, 
     editable: true, 
     events: getUrl() 
    }); 

    $('#siteSelect').click(function() { 

     $('#calendar').fullCalendar('removeEvents'); 
     $('#calendar').fullCalendar('removeEventSource', ''); 
     $('#calendar').fullCalendar('addEventSource', getUrl()); 


    }); 

    function getUrl() { 
     return 'api/Event?' + getFilter(); 
    } 

    $("#toggleButton").click(function() { 
     $("#toggleDiv").slideToggle("slow"); 

    }); 

}); 

function getFilter() { 
    return $("#filterForm").serialize(); 

} 

ответ

2

Попробуйте использовать функцию для этого вместо

$('#calendar').fullCalendar({ 
    events: function(start, end, timezone, callback) { 
     $.ajax({ 
      url: getUrl(), 
      dataType: 'JSON', 
      success: function(data) { 
       callback(JSON.parse(data)); 
      } 
     }); 
    } 
    ... 
}); 
+0

СПАСИБО - отлично работает! – KnowHoper

Смежные вопросы