Ionic/Leaflet.js : 如何从 L.Draw.Event.CREATE 事件调用函数?



我正在使用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();,它会调用它,所以我知道这是一个范围问题。我不确定如何调用父范围。

感谢您的任何建议!

不要使用匿名函数作为回调,而是创建一个单独的命名函数,然后可以调用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!');
}

相关内容

  • 没有找到相关文章

最新更新