我正在使用Angular和Full Calendar。有什么方法可以更改为仅在屏幕宽度较小时启用列表模式?
HTML(使用配置的位置):
<div class="calendar-container">
<angular2-fullcalendar #calendar [options]="calendarOptions" (initialized)="onCalendarInit($event)"></angular2-fullcalendar>
</div>
TS(在ngOnInit中设置要显示的数据以及设置初始配置的位置):
calendarOptions: any;
ngOnInit() {
this.innerWidth = window.innerWidth;
//Set general calendar options
this.calendarOptions = {
//defaultView: 'listMonth'
height:500,
editable: true,
eventLimit: false,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listMonth'
},
eventClick: (calEvent, jsEvent, view) => {
//Open the dialog with event info
this.openDialog(calEvent);
}
}
}
onCalendarInit(e:boolean) {
if(e) {
this.subjectEventsService.subscribeToDataServiceGetSubjectEvents().subscribe(data=>{
this.ucCalendar.fullCalendar('removeEvents');
this.ucCalendar.fullCalendar('addEventSource', data);
this.eventsList = data;
});
}
}
请注意配置中的defaultView
选项,当设置为listMonth
时,默认情况下将显示listMonth
视图,这是屏幕较小时所需的视图。除此之外,我可以删除用于查看header
对象中列表以外的其他模式的选项。
但是,我不确定在调整窗口大小时如何获取angular2-fullcalendar
来更新配置。我试图实现诸如link之类的答案,但无济于事。我也曾尝试做类似的事情:
<div class="calendar-container">
<angular2-fullcalendar #calendar [options]="window.innerWidth > 768 ? calendarOptions : calendarOptionsSmall" (initialized)="onCalendarInit($event)"></angular2-fullcalendar>
</div>
calendarOptionsSmall
是另一个具有小屏幕所需配置的配置对象,但无济于事。
有人可以帮忙吗?谢谢。
答案 0 :(得分:0)