Вызов функции для содержимого информационного окна при открытии не только по init - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть несколько объектов с маркерами.Эти объекты имеют динамические данные, и я хотел бы вывести их в информационное окно маркера объекта.Пока это то, что у меня есть:

function createRandomObjectWithAMarker() {
  var marker;
  var aData = "dataToDisplay";
  var infowindow = new google.maps.InfoWindow({
    content:callThisFunctionWhenOpenWindow(aData)
  });
  marker.addListener('click', function() {
    infowindow.open(map, marker);
  });
  randomObject = {
    /*
    someData
    */
    marker: marker
  };
  return randomObject;
}

И я хотел бы, чтобы эта функция вызывалась, когда я щелкаю маркер, чтобы показать возвращаемое значение modifiedData как content infoWindow.

function callThisFunctionWhenOpenWindow(aData){
  /*
  do some stuff on aData
  */
  return modifiedData;
}

Но на самом деле эта функция вызывается один раз: только когда я запускаю randomObject с помощью вызова createRandomObjectWithAMarker().Поэтому, если я покажу infoWindow через некоторое время, когда данные не будут такими же, как при запуске сценария, он все равно будет отображать тот же результат.Есть ли способ сделать это?Если да, то как?

1 Ответ

0 голосов
/ 28 ноября 2018

Попробуйте что-нибудь подобное?

Таким образом, информационное окно (и его данные) создается только при нажатии на маркер

function createRandomObjectWithAMarker() {
  var marker;
  var aData = "dataToDisplay";
  marker.addListener('click', function() {
    var infowindow = new google.maps.InfoWindow({
      content:callThisFunctionWhenOpenWindow(aData)
    });
    infowindow.open(map, marker);
  });
  randomObject = {
    /*
    someData
    */
    marker: marker
  };
  return randomObject;
}
...