Vue.js FullCalendar VueJS-更新日期范围
我使用官方版本,我想更新视图中显示的当前范围(DayGridMonth此处):1个月、2个月、3个月、自定义期间 根据“文档”,由于函数Vue.js FullCalendar VueJS-更新日期范围,vue.js,fullcalendar,Vue.js,Fullcalendar,我使用官方版本,我想更新视图中显示的当前范围(DayGridMonth此处):1个月、2个月、3个月、自定义期间 根据“文档”,由于函数setOption()(),可以更新visibleRange属性,但它对我不起作用:该属性在组件中得到了很好的更新,但视图没有更新 我还试图手动更新状态,但没有结果 这是我的草稿函数来做这件事 updateCurrentDate: function () { const calendarApi = this.$refs.fullCalen
setOption()
(),可以更新visibleRange
属性,但它对我不起作用:该属性在组件中得到了很好的更新,但视图没有更新
我还试图手动更新状态,但没有结果
这是我的草稿函数来做这件事
updateCurrentDate: function () {
const calendarApi = this.$refs.fullCalendar.getApi();
const date = new Date(calendarApi.getDate());
let endRange;
this.currentPeriodRange = calendarApi.state.dateProfile.activeRange;
this.currentPeriodLabel = moment(date).format('MMMM YYYY');
if (this.currentView === 'month') {
endRange = moment(this.currentPeriodRange.start).add(2, 'month');
this.currentPeriodRange.end = endRange.toDate();
// Not working
calendarApi.setOption('visibleRange', this.currentPeriodRange);
// No one of these test work
calendarApi.state.dateProfile.activeRange = this.currentPeriodRange; //
calendarApi.state.dateProfile.currentRange = this.currentPeriodRange;
calendarApi.state.dateProfile.renderRange = this.currentPeriodRange;
}
if (this.currentPeriodRange.start !== this.currentPeriodRange.end) {
this.currentPeriodLabel = this.currentPeriodLabel + ' - ' + endRange.format('MMMM YYYY');
}
return;
},
感谢阅读和回答在月视图中无法调整可见范围,它是一个固定的网格,始终显示整整一个月。我怀疑你的代码本身有什么问题,你只是试图让它做一些它不做的事情。如果指定“timeGrid”或“list”或“timeline”之类的视图,则代码更有可能工作。不幸的是,文档中没有提到这一点。我对你的回答感到非常难过哈哈!难道你不认为我可以用renderDates方法来围绕这个问题,它为这个视图渲染每个单元格吗?例如,通过在DOM中手动附加所有缺少的单元格?我很遗憾,这个VueJS组件的文档太少…它不是VueJS文档-visibleRange方法和文档适用于fullCalendar的所有风格,无论是原生JS、VueJS、,不管怎样,我认为你建议的方法不会起作用-fullCalendar的内部渲染引擎不会知道你在回调期间手动添加的日期/时间段,也不会知道在那里放置事件,即使这些事件与创建的日期匹配。如果您真的想增强“月”视图,那么您必须创建一个-可能是复制月视图代码,然后对其进行更改。但那真的是一项相当大的工作。而fullCalendar 5即将发布,因此您必须再次执行此操作!如果我是你,我会仔细考虑你的要求到底有多重要,在你走这条路之前。也许可以做一些创造性的思考,看看是否有另一种令人满意的方式来展示信息,即利用现有的功能和选项。可见范围不能在月视图中进行调整,它是一个固定的网格,总是正好显示一个月。我怀疑你的代码本身有什么问题,你只是试图让它做一些它不做的事情。如果指定“timeGrid”或“list”或“timeline”之类的视图,则代码更有可能工作。不幸的是,文档中没有提到这一点。我对你的回答感到非常难过哈哈!难道你不认为我可以用renderDates方法来围绕这个问题,它为这个视图渲染每个单元格吗?例如,通过在DOM中手动附加所有缺少的单元格?我很遗憾,这个VueJS组件的文档太少…它不是VueJS文档-visibleRange方法和文档适用于fullCalendar的所有风格,无论是原生JS、VueJS、,不管怎样,我认为你建议的方法不会起作用-fullCalendar的内部渲染引擎不会知道你在回调期间手动添加的日期/时间段,也不会知道在那里放置事件,即使这些事件与创建的日期匹配。如果您真的想增强“月”视图,那么您必须创建一个-可能是复制月视图代码,然后对其进行更改。但那真的是一项相当大的工作。而fullCalendar 5即将发布,因此您必须再次执行此操作!如果我是你,我会仔细考虑你的要求到底有多重要,在你走这条路之前。也许做一些创造性的思考,看看是否有另一种令人满意的方式来呈现信息,即利用现有的功能和选项。