FullCalendar v4动态设置日历的高度

时间:2019-09-24 07:52:29

标签: javascript laravel npm fullcalendar fullcalendar-4

在我的Laravel应用中,我制作了.js文件`fullCalendar.js',它位于其中:

import { Calendar } from '@fullcalendar/core';
import dayGridPlugin from '@fullcalendar/daygrid';
import timeGridPlugin from '@fullcalendar/timegrid';
import listPlugin from '@fullcalendar/list';
import rrulePlugin from '@fullcalendar/rrule';
import interactionPlugin from '@fullcalendar/interaction';
import momentPlugin from '@fullcalendar/moment';
import allLocales from '@fullcalendar/core/locales-all';

import '@fullcalendar/core/main.css';
import '@fullcalendar/daygrid/main.css';
import '@fullcalendar/timegrid/main.css';
import '@fullcalendar/list/main.css';

document.addEventListener('DOMContentLoaded', function() {
  var calendarEl = document.getElementById('calendar');
  var calendar = new Calendar(calendarEl, {
    plugins: [ dayGridPlugin, timeGridPlugin, listPlugin, rrulePlugin, interactionPlugin, momentPlugin ],
    header: {
        left: 'prev, next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
    },
    locales: allLocales,
    locale: 'sr-ME',
    timezone : 'local',
    editable: true,
    navLinks: true, // can click day/week names to navigate views
    eventLimit: true, // allow "more" link when too many events
    events: {
        url: '/eventi',
        failure: function() {
            document.getElementById('script-warning').style.display = 'block'
        }
    },
    loading: function(bool) {
        document.getElementById('loading').style.display = bool ? 'block' : 'none';
    }
  });
  calendar.render();
});

在刀片服务器calendar.blade.php中,我包含了该文件
<script src="{{ asset('js/fullCalendar.js') }}" ></script>
,我有<div>,其ID为id="calendar",我可以看到日历,并且没有任何问题。 如果要使用在他们的网站上看到的这一行动态设置日历在某些blade.php(视图)中的高度,
calendar.setOption('height', 700);
我收到一条错误消息:未捕获的TypeError:calendar.setOption不是函数 我尝试在文档准备就绪时或之前,甚至为DOMContentLoaded添加事件侦听器,但错误仍然存​​在。在.js文件中进行每次更改之后,我都会按照命令npm run dev进行编译。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

正如@ADyson在他的评论中所说,我只需要声明日历为全局日历。完成后,我可以使用calendar.setOption('height', 700);和其他日历功能。