从customButton fullcalendar调用函数

时间:2019-03-18 15:16:42

标签: javascript angular typescript fullcalendar

我已在fullcalendar中添加了自定义按钮:

ngOnInit() {
this.calendarOptions = {
  customButtons: {
    custom1: {
      text: 'Add event',
      click() {
        this.openModal();
     }
    }
  },
  height: 600,
  editable: true,
  eventLimit: false,
  locale: 'lt',
  header: {
    left: 'prev,next today, custom1,custom2',
    center: 'title',
    right: 'month,agendaWeek,agendaDay,listMonth'
  },
  events: ''
};}

并在按钮上单击我要调用函数:

    openModal() {
console.log('opened');
// '<app-add-event></app-add-event>';}

但是,我收到错误消息zone.js:199 Uncaught TypeError: this.openModal is not a function at HTMLButtonElement.click (events-calendar.component.ts:20)

我不知道怎么了。您如何调用自定义函数?

我也尝试过:

 this.calendarOptions = {
  customButtons: {
    custom1: {
      text: 'Pridėti įvykį',
      click:
        this.openModal
    }
  }, ...   };

在这种情况下,console.log();工作正常,但此后仍然出现以下错误。怎么了?

我应该在这里的某个地方声明此功能吗?

<ng-fullcalendar #ucCalendar [options]="calendarOptions" (eventClick)="eventClick($event.detail)" (eventDrop)="updateEvent($event.detail)"
          (eventResize)="updateEvent($event.detail)" (clickButton)="clickButton($event.detail)"></ng-fullcalendar>

1 个答案:

答案 0 :(得分:2)

来自fullcalendar documentation

Parallel

您可以看到dirs属性的自定义按钮声明中存在问题。

我很惊讶您仍然遇到引用 customButtons: { myCustomButton: { text: 'custom!', click: function() { alert('clicked the custom button!'); } } } 的错误。 由于您说过尝试过click(),因此建议您尝试this.openModal。 如果可行,则问题可能出在click: this.openModal的使用上。