Openlayers в Angular

#angular #openlayers

#angular #openlayers

Вопрос:

У меня есть функция щелчка на карте OpenLayers

 testvar: string
map = new Map()


ngOnInit(): void {

this.map.on('click', function(event) {
   console.log(this.testvar)
})

}
 

Но this недоступен в рамках функции click .

Есть идеи, как это сделать/

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

1. let that = this; console.log(that.testvar) не уверен, но попробуйте так.

Ответ №1:

это потому, что вы объявляете свою функцию, используя function ключевое слово. Если вы объявите, что вы функционируете как функция со стрелкой, она будет работать:

 this.map.on('click', event => {
   console.log(this.testvar)
})
 

Взгляните на эту статью для получения более подробной информации о функции стрелки против функции: https://www.freecodecamp.org/news/when-and-why-you-should-use-es6-arrow-functions-and-when-you-shouldnt-3d851d7f0b26/

или этот: https://dmitripavlutin.com/differences-between-arrow-and-regular-functions /