Javascript 如何在google maps for AngularJS中单击标记时关闭其他信息窗口
我用 在infoWindow中放置一些标记。 单击标记时,它可以打开信息窗口。 但当单击另一个标记时,它无法关闭打开的信息窗口Javascript 如何在google maps for AngularJS中单击标记时关闭其他信息窗口,javascript,angularjs,google-maps,google-maps-api-3,Javascript,Angularjs,Google Maps,Google Maps Api 3,我用 在infoWindow中放置一些标记。 单击标记时,它可以打开信息窗口。 但当单击另一个标记时,它无法关闭打开的信息窗口 <div id="map" ng-controller="MapCtrl"> <google-map center="map.center" zoom="map.zoom" draggable="true" dragging="map.dragging"
<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);
}
});
});
var-mapControllers=angular.module('mapControllers',['google-maps']);
控制器('MapCtrl',函数($scope,$http){
var onMarkerClicked=函数(标记器){
_.each($scope.map.markers,函数(mker){
mker.showWindow=false;
});
$scope.$apply();
marker.showWindow=true;
};
$scope.map={
当前_标记:{},
控件:{},
标记:[],
中心:{
纬度:35.4138,
经度:139.4505
},
缩放:6,
拖动:正确
};
$http.get('/v1/tweets').success(函数(数据){
对于(变量i=0;i
如何更改此代码?使用jQuery进行肮脏攻击:
$("img[src='https://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png']").click();
关闭/单击所有打开的窗口,然后再显示新的信息窗口。使用jQuery进行肮脏攻击:
$("img[src='https://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png']").click();
在显示新的信息窗口之前,请关闭/单击所有打开的窗口。我得到了一个工作版本,但我使用了单对象指令以及ng repeat solution来解决您的问题Hi JoseM,我可以关闭信息窗口!非常感谢。@vinod_vh这是如何回答这个问题的?你的问题与本机Google Maps API有关,这个问题是关于
angular Google Maps
指令的。我有一个工作版本,但我使用了单对象指令和ng repeat解决方案来解决你的问题嗨,JoseM,我可以关闭信息窗口!非常感谢。@vinod_vh这是如何回答这个问题的?您的问题与本机Google Maps API有关,这个问题是关于angular Google Maps
指令的。