我正在为这个项目使用 vuejs。在 FullCalendar(v5.3.0) 中,我一直在尝试在月视图(默认视图)中单击特定日期时获取 timeGridDay,所选日期是要显示的日期。
我使用 ref 来引用 FullCalendar 组件。(此处仅显示相关部分)
<template>
<div class="main">
<div class="calendar-holder col-10 section">
<FullCalendar ref="fullcalendar" :options="options" />
</div>
</div>
</template>
然后我尝试使用 dateClick 方法在单击日期时进入 timeGridDay 视图。
data(){
return {
calendarApi: null,
options: {
plugins: [
dayGridPlugin,
timeGridPlugin,
interactionPlugin,
listPlugin
],
initialView: 'dayGridMonth',
dateClick: function(info) {
if(confirm('View Schedule?')){
let calendarApi = this.$ref.fullcalendar.getApi();
calendarApi.fullCalendar('changeView', 'timeGridDay', info.date);
}
}
}
}
}
这没有用。当我检查控制台时它说
类型错误:this.$ref 未定义
但是当我在挂载的钩子中尝试相同的代码时它并没有未定义(在数据中初始化 calendarApi)
mounted(){
this.calendarApi = this.$refs.fullcalendar.getApi();
console.log(this.calendarApi)
}
它返回了一个对象。但我无法在 dateClick 方法中获取该 calendarApi 对象。我试过了:
dateClick: function(info) {
if(confirm('View Schedule?')){
this.calendarApi.fullCalendar('changeView', 'timeGridDay', info.date);
}
}
没用。控制台给出了这个错误:
类型错误:this.calendarApi 未定义
有什么办法可以解决这个问题吗?我也尝试从另一个方法获取 calendarApi 对象,但控制台说该方法未定义。提前致谢。