我有一个 angular2 应用程序,其中有一个完整的日历组件。我想使用 eventClick
回调在单击完整日历事件时显示一个对话框。我有以下代码来执行此操作:
export class ScheduleComponent implements OnInit{
events: CalendarEvent[];
display: boolean;
tables: SelectItem[];
selectedTable: string;
ngOnInit(){
this.display = false;
this.scheduleService.GetAllEvents().subscribe((data: CalendarEvent[]) =>
{
this.events = data;
var calendar: JQuery = $("#calendar");
(<any>calendar).fullCalendar({
eventClick: function(event) {
this.display = true;
return false;
}
});
});
}
这是一个非常简化的版本,但应该提供所有需要的信息。
我的问题是 eventClick
回调中的 this.display = true
行似乎无法看到 display
属性.
有谁知道这是为什么以及我该如何解决它?
谢谢,
最佳答案
通常在发布问题后,我现在已经制定了解决方案。
对于其他遇到此问题的人来说,解决方案是使用“粗箭头”表示法。
所以不是这个:
eventClick: function(event) {
this.display = true;
return false;
}
我用过这个:
eventClick: (event) => {
this.display = true;
return false;
},
我不太确定它是如何工作的,因为它只是反复试验。因此,如果有人确实知道原因并且可以解释,那么我将非常有兴趣找出原因。
关于Angular2 FullCalendar 回调无法访问的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40361558/