当CustomView具有visibleRange时,使用previous/next在FullCalendar中导航

当CustomView具有visibleRange时,使用previous/next在FullCalendar中导航,fullcalendar,custom-view,fullcalendar-scheduler,fullcalendar-4,Fullcalendar,Custom View,Fullcalendar Scheduler,Fullcalendar 4,我的日历有一个特定视图:它显示31天(显示当前日期前4天,之后27天) 因此,我的视图有一个动态可视范围 let INIT = moment().subtract(4, 'days').format('YYYY-MM-DD'); let INIT_END = moment(INIT).add(31,'days').format('YYYY-MM-DD'); [……] 和 我尝试了一些涉及jQuery的东西,它基本上是有效的,除了您必须在prev/next上单击两次才能更改visibleRang

我的日历有一个特定视图:它显示31天(显示当前日期前4天,之后27天)

因此,我的视图有一个动态可视范围

let INIT = moment().subtract(4, 'days').format('YYYY-MM-DD');
let INIT_END = moment(INIT).add(31,'days').format('YYYY-MM-DD');
[……]

我尝试了一些涉及jQuery的东西,它基本上是有效的,除了您必须在prev/next上单击两次才能更改visibleRange(从next转到previous时也必须单击两次,反之亦然)

我想要的是:

calendar.setOption('visibleRange', {
  start: INIT, 
  end: INIT_END
})
但在我的实现中,它只工作一次,当它被触发时,点击按钮就不再工作了

你可以在上面找到代码


你能帮我吗?

好的,一位同事的同事带我找到了解决方案,非常感谢他

我没有使用visibleRange并尝试使用jQuery操作FullCalendar的数据(非常粗略),而是计算我的两个时刻之间的差异以获得持续时间:

const INIT = moment().subtract(4, 'days');
const INIT_END = moment(INIT).add(31,'days');
let duration = INIT_END.diff(INIT, 'days')
然后我在customView的设置中使用此持续时间:

resourceTimelineRollingMonth: {
  type: 'resourceTimeline',
  duration: { days: duration },
  buttonText: '31 jours'
}
为了使我的视图在当前日期前4天开始,我在Calendar对象中设置:

[...]
defaultDate: INIT.format('YYYY-MM-DD'),
[...]
现在它可以完美地工作了

[...]
defaultDate: INIT.format('YYYY-MM-DD'),
[...]