Настройка прослушивателя событий для свойства класса

#javascript #oop #leaflet #leaflet-geoman

#javascript #ооп #брошюра #брошюра-геоман

Вопрос:

Я использую Leaflet и Leaflet-geoman в сочетании с wfs-t для создания редактируемого объекта карты. У меня есть карта редактирования класса, которая имеет карту листовки в качестве свойства. Я пытаюсь прослушать событие ‘pm: create’ на этой карте для каждого класса. Вот мой код:

 class EditMap {
    constructor(map){
        this.map = map;//Leaflet map
    }
    this.map.on('pm:create', e => {
        console.log('Feature created');
    });
}
  

Я получаю ошибку Uncaught SyntaxError: неожиданный токен ‘.’ в этой строке:

 this.map.on('pm:create', e => {
  

Я ожидаю, что мне не хватает чего-то простого. Мои основные вопросы сводятся к следующему: как вы прослушиваете событие в свойстве объекта?

Комментарии:

1. Эта строка находится за пределами вашего конструктора.

Ответ №1:

В неправильном месте

Вы используете класс, чтобы вы могли делать:

 class EditMap {
  constructor(map) {
    this.map = map;

    this.map.on('pm:create', this.pmCreate)
  }

  pmCreate(e) {
    console.log('Feature created');
  }
}
  

или просто это; но будет быстро заполняться по мере добавления других участников списка:

 class EditMap {
  constructor(map) {
    this.map = map; //Leaflet map

    this.map.on('pm:create', e => {
      console.log('Feature created');
    });
  }
}