в моем проекте Symfony я использую плагин FullCalendar.
В опции eventRender я назначил ему функцию:
eventRender: function (info) {
setHiddenVisibled();
},
Моя функция работает без проблем.
Я использую webpack-encore для управления своими активами, и внезапно я хотел бы поместить свою функцию в файл календаря. js, чтобы его можно было использовать в других обстоятельствах из любого файла. .
Итак, я вставил его
function setHiddenVisibled()
{
$(document).ready(function()
{
var divLegende = $("#calendar-legende");
if(divLegende.length)
{
$("#calendar-legende input.checkbox").each(function(){
var titre = $(this).attr("id");
var events = $("[class*="+$(this).attr("id")+"]");
if(this.checked)
{
events.each(function(){
$(this).show();
});
}
else
{
events.each(function(){
$(this).hide();
});
}
});
}
});
}
Но теперь это больше не учитывается. Когда я загружаю календарь, он вызывает ошибку при попытке отрисовки событий, потому что он не может получить доступ к моей функции.
Поэтому я попытался экспортировать его следующим образом
module.exports = {
setHiddenVisibled
};
Но У меня есть эта ошибка:
Uncaught TypeError: Невозможно назначить только для чтения свойство 'exports' объекта '#'
В моем шаблоне Я:
{{ encore_entry_link_tags('calendar/calendar') }}
<div id="calendar">
{% include '@Calendar/calendar.html' %}
</div>
{{ encore_entry_script_tags('calendar/calendar') }}
<script>
document.addEventListener('DOMContentLoaded', () => {
var calendarEl = document.getElementById('calendar-holder');
var calendar = new Calendar(calendarEl, {
//...
eventRender: function (info) {
setHiddenVisibled();
},
//...
});
calendar.render();
});
</script>
Спасибо за помощь