0

Listening для domready события в нормальных Js картах Google относительно легко как описано here:угловые-Google-карты - слушать InfoWindow domready событий

infoWindow = new google.maps.InfoWindow(); 
google.maps.event.addListener(infoWindow, 'domready', function() { 
     // whatever you want to do once the DOM is ready 
}); 

Однако это не кажется очевидным, как это сделать в angular-google-maps.

Есть ли решение?

ответ

1

Решение при использовании Angular Google Maps предполагает использование объекта управления infowindow - see docs.

Как отмечалось в this issue - где я первый отправил это решение - вы можете создать пустой объект управления InfoWindow внутри основного контроллера:

$scope.infowindowControl = {}; 

Затем сфера связать свой новый объект в ui-gmap-window определение директивы, как:

<ui-gmap-window 
    options="windowOptions" 
    closeClick="closeClick()" 
    control="infowindowControl" 
> 

на InfoWindow открыта (на самом деле не знает, в какой точке) - она ​​будет проходить пять функций на пустой объект, созданный в $ объеме. Некоторые из этих функций отмечены в documentation, но в довольно бессистемно и не-определенным образом:

  • getChildWindows()
  • getGWindows()
  • getPlurals()
  • HideWindow()
  • ShowWindow()

Тот, что вам нужно, это getGWindows() - который вы поместите внутрь вашего маркера click накануне нт.
Это поможет вам массив открытых infowindows и теперь вы можете прикрепить прослушиватель событий в стандартном Google Maps моды, как:

var windows = $scope.infowindowControl.getGWindows(); 
    console.log('inside click after getGWindows ', windows); 
google.maps.event.addListener(windows[0], 'domready', function() { 
    console.log('infowindow domready just fired !!'); 
}); 

Хотя это не идеальный, хорошо документированы или простое решение (и потребовалось несколько часов, чтобы понять), и передача функций пустующему объекту откровенно контр-интуитивно понятна - похоже, это работает.

Plunker here.