[英]How to close other infoWindows when a marker clicked in google maps for AngularJS
我使用Google Maps for AngularJS在infoWindow中放置一些標記。 單擊標記時,它可以打開infoWindow。 但是,當單擊另一個標記時,它無法關閉打開的infoWindow。
<div id="map" ng-controller="MapCtrl">
<google-map
center="map.center"
zoom="map.zoom"
draggable="true"
dragging="map.dragging"
events="map.events"
control="map.control"
refresh="true">
<markers models="map.markers" coords="'self'" icon="'icon'" click="'onClicked'">
<windows show="'showWindow'" closeClick="'closeClick'" ng-cloak>
<img ng-non-bindable src="{{url}}" width="200px;" class="img-responsive" />
</windows>
</markers>
</google-map>
</div>
這是controller.js
var mapControllers = angular.module('mapControllers', ['google-maps']);
mapControllers.controller('MapCtrl', function($scope, $http) {
var onMarkerClicked = function (marker) {
_.each($scope.map.markers, function (mker) {
mker.showWindow = false;
});
$scope.$apply();
marker.showWindow = true;
};
$scope.map = {
current_marker: {},
control:{},
markers: [],
center: {
latitude: 35.4138,
longitude: 139.4505
},
zoom: 6,
dragging: true
};
$http.get('/v1/tweets').success(function(data) {
for (var i = 0; i < data.length; i++) {
var marker = {
latitude: data[i].lat,
longitude: data[i].lon,
text: data[i].text,
url: data[i].url,
icon: '/assets/flower.png',
showWindow: false
};
marker.closeClick = function () {
marker.showWindow = false;
$scope.$apply();
};
marker.onClicked = function () {
onMarkerClicked(marker);
};
$scope.map.markers.push(marker);
}
});
});
如何更改此代碼?
jQuery的骯臟hack:
$("img[src='https://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png']").click();
在顯示新的Infowindow之前,關閉/單擊所有打開的窗口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.