Ionic / Leaflet.js: Как я могу вызвать функцию из события L.Draw.Event.CREATED? - PullRequest
0 голосов
/ 21 мая 2018

Я использую Leaftlet Draw для рисования простых фигур на карте.Когда форма создана, я хотел бы вызвать другой метод.

Я слушаю событие CREATE, например:

drawMap() {
    this.myMap = L.map('map', {
        crs: L.CRS.Simple
    });

    ...

    this.myMap.on(L.Draw.Event.CREATED, function (e) {
      let type = e.layerType;
      let layer = e.layer;

      this.myOtherMethod();  // this.myOtherMethod is not a function

      drawLayer.addLayer(layer);
    });
}

myOtherMethod() {
    console.log('hello world!');
}

Если я возьму this.myOtherMethod(); изслушатель событий, он будет называть это нормально, так что я знаю, что это проблема масштаба.Я не уверен, как вызвать родительскую область.

Спасибо за любые предложения!

1 Ответ

0 голосов
/ 22 мая 2018

Вместо использования анонимной функции в качестве обратного вызова создайте отдельную именованную функцию, которая затем может вызвать myOtherMethod

drawMap() {
    this.myMap = L.map('map', {
        crs: L.CRS.Simple
    });

    ...

    this.myMap.on(L.Draw.Event.CREATED,this.onCreate.bind(this) );
}

onCreate (e) {
      let type = e.layerType;
      let layer = e.layer;

      this.myOtherMethod();  // this.myOtherMethod is not a function

      drawLayer.addLayer(layer);
}


myOtherMethod() {
    console.log('hello world!');
}
...