Вызов функции из customButton fullcalendar - PullRequest
2 голосов
/ 18 марта 2019

Я добавил пользовательскую кнопку к своему 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 Ответ

2 голосов
/ 18 марта 2019

Из документации fullcalendar :

  customButtons: {
    myCustomButton: {
      text: 'custom!',
      click: function() {
        alert('clicked the custom button!');
      }
    }
  }

Вы можете видеть, что в объявлении пользовательской кнопки существует проблема для свойства click().

IЯ удивлен, что у вас все еще есть ошибка, ссылающаяся на this.openModal.Поскольку вы заявили, что пытались click: this.openModal, я бы посоветовал вам попробовать click : () => console.log('clicked').Если это работает, проблема может быть связана с использованием this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...