Vue FullCalendar中的下个月和上个月的监视者

时间:2019-06-16 21:47:47

标签: vue.js fullcalendar vuex

我正在将FullCalendar库与Vue.js一起使用

是否可以使用默认的上一个,下一个和今天按钮来触发我自己的操作。

我创建了自己的海关按钮,可以执行我想要的操作,但是更喜欢使用默认按钮。

当前,我有一个链接到方法的按钮:

start_to_end = slice(start, end+1)
end_to_start = slice(end, len(a)+start+1)

if start_to_end > end_to_start:
    shortest_path = (a+a)[start_to_end]
else:
    shortest_path = (a+a)[end_to_start]

这将调用此方法:

<button @click="handleMonthIncrement">Next Month</button>

我正在使用ref = fullCalendar,它绑定到Calendar的jQuery参考以更改视图。

如果我可以收听下一个上一个按钮,则可以删除该代码,因为这些按钮已经更改了日历视图。

这可能吗?我知道viewRender(https://fullcalendar.io/docs/v1/viewRender)可用于在日历更改视图时进行记录,但是不确定是否可以满足我上面的要求。

谢谢。

谢谢

1 个答案:

答案 0 :(得分:1)

我是通过查看此处发出的事件来实现这一目标的:https://github.com/fullcalendar/fullcalendar-vue/blob/master/src/fullcalendar-options.js

我找到了datesRender-可以将其添加到@开头的FullCalendar元素中,以在日期重新呈现时触发。因为只有月视图,所以我可以触发一个称为handleMonthChange的方法。

查看此处:

<FullCalendar
  defaultView="dayGridMonth"
  @datesRender="handleMonthChange"
/>

然后在handleMonthChange中,我有以下内容:

handleMonthChange: function(arg) {
  var currentStart = arg.view.currentStart;
  var check = moment(currentStart, "YYYY/MM/DD");
  var currentMonth = check.format("M");

  // load action
  this.updateCurrentMonth(currentMonth);
  // refresh summaries
  this.updateSummary();
}

我用矩来确定从日期(从视图对象开始)的月份。

在此处查看有关回传到此处的内容的更多信息https://fullcalendar.io/docs/datesRender

然后我用它通过调用Vuex操作来更改Vuex状态下的月份,然后根据需要更新摘要部分。

希望也能帮助别人。非常感谢@ADyson帮助我到达这里!