Javascript 使用谷歌地图隐藏点击时的所有信息窗口

Javascript 使用谷歌地图隐藏点击时的所有信息窗口,javascript,angularjs,google-maps,google-maps-api-3,angular-google-maps,Javascript,Angularjs,Google Maps,Google Maps Api 3,Angular Google Maps,我正在使用此处定义的谷歌地图api: 我有以下DOM结构 <ui-gmap-markers models="destinationMarkers" coords="'self'" idKey='self.idkey' > <div ui-gmap-windows models="destinationMarkers" control="infoWindows"> <div ng-non-bindable> &l

我正在使用此处定义的谷歌地图api:

我有以下DOM结构

<ui-gmap-markers models="destinationMarkers" coords="'self'" idKey='self.idkey' >
    <div ui-gmap-windows models="destinationMarkers" control="infoWindows">
        <div ng-non-bindable>
            <!-- {{contents}} -->
        </div>
    </div>
</ui-gmap-markers>


我正试图使它,使信息窗口关闭时,地图的任何其他部分被点击,或当另一个窗口被打开。最近的一次调用是:
scope.infoWindows.getChildWindows()
,它提供了对标记对象的访问,但是调用相关的hideWindow函数似乎什么也做不了。有人知道怎么做吗?

我刚刚遇到了完全相同的问题,经过一番周折后,我有了一个解决方案(如果我在比赛中迟到了,请原谅)

必须在窗口上设置控制器属性,如下所示

<ui-gmap-window ng-if="m.response" control="googlemap" >
$scope.googlemap = {};

$scope.map = {
    zoom: 5,
    center: getMapCenter(response),
    options: {
        // draggable: false
    },
    control: {}
};
markers.push({
    id: i,
    ...
    ...
    events: {
        click: function(e){
            var windows = $scope.googlemap.getChildWindows();

            for (var i = 0; i < windows.length; i++){
                windows[i].hideWindow()
            }
        }
    }
});
现在我们可以将一个事件附加到标记上,这将使我们能够遍历窗口列表并像这样隐藏它们

<ui-gmap-window ng-if="m.response" control="googlemap" >
$scope.googlemap = {};

$scope.map = {
    zoom: 5,
    center: getMapCenter(response),
    options: {
        // draggable: false
    },
    control: {}
};
markers.push({
    id: i,
    ...
    ...
    events: {
        click: function(e){
            var windows = $scope.googlemap.getChildWindows();

            for (var i = 0; i < windows.length; i++){
                windows[i].hideWindow()
            }
        }
    }
});
markers.push({
id:我,
...
...
活动:{
点击:功能(e){
var windows=$scope.googlemap.getChildWindows();
对于(变量i=0;i
请发布一个到目前为止(最好是在)您可以在“Windows”菜单项下的底部看到的工作演示。所有其他代码都运行良好-我只是不知道如何访问和删除这些信息窗口。