Angular7 fullcalendar v5 datesSet 回调未触发
Angular7 fullcalendar v5 datesSet callback is not triggering
我在我的 Angular 7 项目中使用 angular 完整日历 (v5.3) 组件,我想在用户更改视图日期时触发一个事件(当在两者之间导航时日期)
这是我的日历选项的样子,除了显示数据外,此日历与用户之间没有交互。
@ViewChild('calendar') calendarComponent: FullCalendarComponent;
calendarOptions: CalendarOptions = {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
initialView: 'timeGridWeek',
weekends: true,
editable: false,
selectable: false,
selectMirror: false,
dayMaxEvents: true,
nowIndicator: true,
allDaySlot: false,
eventSources: [ ],
};
html 页
<div>
<full-calendar (datesSet)="handleDates($event)" defaultView="dayGridMonth" [options]="calendarOptions"></full-calendar>
</div>
事件处理器函数
handleDates(args:any){
var startDate = args.view.activeStart;
var endDate = args.view.activeEnd;
if(endDate > this.periodEndDate){
this.periodStartDate = new Date(endDate.getFullYear(),endDate.getMonth()-1, 1);
this.periodEndDate = new Date(startDate,startDate.getMonth() + 2, 0);
} else if(startDate < this.periodEndDate){
this.periodStartDate = new Date(startDate.getFullYear(),endDate.getMonth()-1, 1);
this.periodEndDate = new Date(endDate,endDate.getMonth() + 2, 0);
}
//this method loads event data from the API;
this.refreshCalendarData(this.periodStartDate, this.periodEndDate);
}
不知为何这个 handleDates(args:any) 没有触发。
代码中有没有可以看出的问题?
基本上,我想加载某个日期范围内的数据,并在用户从 UI.
更改日期时更改它
已找到解决方案,我以错误的方式使用了回调。
datesSet
应包含在日历选项中并绑定到如下方法
@ViewChild('calendar') calendarComponent: FullCalendarComponent;
calendarOptions: CalendarOptions = {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
initialView: 'timeGridWeek',
weekends: true,
editable: true,
selectable: true,
selectMirror: false,
dayMaxEvents: true,
nowIndicator: true,
allDaySlot: false,
datesSet: this.handleDates.bind(this),
eventSources: [ ],
};
我在我的 Angular 7 项目中使用 angular 完整日历 (v5.3) 组件,我想在用户更改视图日期时触发一个事件(当在两者之间导航时日期) 这是我的日历选项的样子,除了显示数据外,此日历与用户之间没有交互。
@ViewChild('calendar') calendarComponent: FullCalendarComponent;
calendarOptions: CalendarOptions = {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
initialView: 'timeGridWeek',
weekends: true,
editable: false,
selectable: false,
selectMirror: false,
dayMaxEvents: true,
nowIndicator: true,
allDaySlot: false,
eventSources: [ ],
};
html 页
<div>
<full-calendar (datesSet)="handleDates($event)" defaultView="dayGridMonth" [options]="calendarOptions"></full-calendar>
</div>
事件处理器函数
handleDates(args:any){
var startDate = args.view.activeStart;
var endDate = args.view.activeEnd;
if(endDate > this.periodEndDate){
this.periodStartDate = new Date(endDate.getFullYear(),endDate.getMonth()-1, 1);
this.periodEndDate = new Date(startDate,startDate.getMonth() + 2, 0);
} else if(startDate < this.periodEndDate){
this.periodStartDate = new Date(startDate.getFullYear(),endDate.getMonth()-1, 1);
this.periodEndDate = new Date(endDate,endDate.getMonth() + 2, 0);
}
//this method loads event data from the API;
this.refreshCalendarData(this.periodStartDate, this.periodEndDate);
}
不知为何这个 handleDates(args:any) 没有触发。
代码中有没有可以看出的问题? 基本上,我想加载某个日期范围内的数据,并在用户从 UI.
更改日期时更改它已找到解决方案,我以错误的方式使用了回调。
datesSet
应包含在日历选项中并绑定到如下方法
@ViewChild('calendar') calendarComponent: FullCalendarComponent;
calendarOptions: CalendarOptions = {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
initialView: 'timeGridWeek',
weekends: true,
editable: true,
selectable: true,
selectMirror: false,
dayMaxEvents: true,
nowIndicator: true,
allDaySlot: false,
datesSet: this.handleDates.bind(this),
eventSources: [ ],
};