【发布时间】:2019-06-17 11:10:48
【问题描述】:
我建议您先查看代码并阅读此内容。我正在尝试访问“选项”对象中 eventClick 的数据,如代码所示。问题是如果想访问该变量之外的数据,我什么也得不到。谁能建议如何在外部访问该数据!
export class DashboardComponent implements OnInit {
selectedEvent: any[] = [];
ngOnInit() {
this.options = {
plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin, listPlugin],
header: {
left: 'prev,next,today',
center: 'title',
right: 'dayGridMonth,dayGridWeek,timeGridDay,listDay'
},
editable: true,
eventClick: function(i) {
return i.event.title
},
};
console.log(this.options.eventClick);
}
}
我希望控制台应该返回该函数的值。
【问题讨论】:
-
您发布的代码在当前形式下很难阅读。你能修复一下缩进吗?
-
当然,你可以复制相同的代码编辑,但你喜欢它。
-
"我期望控制台应该返回该函数的值" ... jsfiddle.net/sLz8w6vt 如您所见,它返回
eventClick选项的值,正如它应该的那样。 eventClick 选项的值是一个函数。所以它打印函数定义。我不确定你期望发生什么?您不能以这种方式执行函数。这是没有意义的,因为它会脱离上下文。 -
您在这里所做的是将函数定义提供给 fullCalendar。当有人点击一个事件时,fullCalendar 将执行该函数。此时,
i数据存在于函数的范围内。使用return不好,因为您将数据返回到fullCalendar 代码内部的某个位置。你不能在那里访问它,并且 fullCalendar 对它不感兴趣,所以它就会丢失。 -
如果你想在函数外部使用
i数据,那么从该上下文中调用其他函数是有意义的,例如eventClick: function(i) { someOtherFunction(i.event.title); }可能。您可以在代码中的其他位置定义function someOtherFunction(title) { ... }。在该功能中,您可以使用提供的数据做任何您喜欢的事情。显然,您无法在 eventClick 函数发生之前读取数据,这似乎是您正在尝试做的事情(尽管不是 100% 清楚)?
标签: javascript typescript fullcalendar fullcalendar-4