Как вызвать функцию машинописи внутри обратного вызова JavaScript - PullRequest
0 голосов
/ 08 июня 2018

Я использую javascript компонент Google Maps компонент в Angular 5 Frontend Framework

export class MapComponent implements OnInit {
  ngOnInit() {
    this.initializeGMap()
  }

  initializeGMap() {
    var myLatlng = new google.maps.LatLng(12,77);

    var mapOptions = {
        zoom: DEFAULT_MAP_ZOOM,
        center: myLatlng,
        scrollwheel: true,
        styles: MAP_STYLE
    };
    this.map = new google.maps.Map(document.getElementById("map"), mapOptions);
    this.initOnMapClickListener();
  }

  initOnMapClickListener() {
      google.maps.event.addListener(this.map, 'click', function(event) {

      var selectedLocation = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng());
      this.addMarker(selectedLocation)
    });
  }

addMarker(latlng) {
    var marker = new google.maps.Marker({
      position: latlng,
      map: this.map,
      icon: './assets/map_marker.png'
    });
  }

}

Выше мой текстовый файл, он имеет три функции

  1. initializeGMap () // для инициализации карт Google
  2. initOnMapClickListener () // для инициализации на карте нажмите прослушиватель
  3. addMarker (latlng) // для добавления маркера при возникновении события onmapclick

Uncaught TypeError: Невозможно прочитать свойство 'addMarker' со значением NULL

Это то, что я получаю при ошибке консоли, если я запускаю приложение Angular

Пожалуйстапомогите понять, как вызвать функцию машинописного текста внутри обратного вызова Javascript

1 Ответ

0 голосов
/ 08 июня 2018

Попробуйте вызвать функцию, используя функцию стрелки =>, чтобы связать ее с лаксической областью действия this -

initOnMapClickListener() {
      google.maps.event.addListener(this.map, 'click', (event) => {

      var selectedLocation = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng());
      this.addMarker(selectedLocation)
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...