【发布时间】:2014-04-29 07:02:58
【问题描述】:
我正在尝试通过单击地图上的标记来切换与 Google 地图 <div> 相邻的 <section> 上的 ng-show。本质上,我希望单击标记的行为类似于ng-click="toggle()"。
当我单击标记时,真/假值会正确记录到控制台,但 ng-show 似乎没有捡起它。
.controller('MapController', ['$scope',
function($scope) {
// $scope.visible = true;
$scope.toggle = function(){
console.log("Value before clicking: "+$scope.visible);
$scope.visible = !$scope.visible;
console.log("Value after clicking: "+$scope.visible);
}
$scope.buildMap = function(){
var mapStyle=[
// Map styles
];
var myLatLng = new google.maps.LatLng(40.748453,-73.995548);
var mapOptions = {
// Map options
};
var myMap = new google.maps.StyledMapType(mapStyle,{name: "My Map"});
var map = new google.maps.Map(document.getElementById('canvas'),mapOptions);
map.mapTypes.set('myMapStyled', myMap);
map.setMapTypeId('myMapStyled');
var myMarker = new google.maps.Marker({
map: map, position: myLatLng, title: "I’m Here"
});
google.maps.event.addListener(myMarker, 'click', function(e){
$scope.toggle();
});
};
}
])
它在 Plunker 上:http://plnkr.co/edit/z2UCTvqqWh04ZElu6npg?p=preview
这是与 Angular 有关,还是与 Maps API 事件有关?
另外,通过将整个东西推到控制器中来加载 Maps API 是否不明智?
【问题讨论】:
标签: javascript angularjs google-maps google-maps-api-3