Решение при использовании 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.