【问题标题】:How to access a variable data in typescript, or javascript如何在 typescript 或 javascript 中访问变量数据
【发布时间】: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


【解决方案1】:

试试这个:

eventClick: (i) => i.event.title;

【讨论】:

  • 两者都可以工作,我的朋友,如果我控制台记录该值,它将只返回一个函数。
  • 您在这里所做的只是以不同的方式定义函数。我不确定你认为它有什么用处。再说一次,这个问题也不是很清楚,所以最好的办法是向 OP 寻求澄清。
猜你喜欢
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2011-09-21
  • 2014-02-22
  • 1970-01-01
相关资源
最近更新 更多