我正在使用Google地图开发我的第一个AngularJS2应用程序。我想在点击标记时将用户转发到另一个页面(使用AngularJS Routing)。
目前没有任何事情发生。我认为这是理解AngularJS中事件的一般问题......
angular.module('starter.controllers').controller('MapCtrl', function($scope, $location, $rootScope) {
var myLatlng = new google.maps.LatLng(50.413192, 8.033106);
var mapOptions = {
center: myLatlng,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var myLatlnggg = new google.maps.LatLng(55.413192, 8.033106);
var marker = new google.maps.Marker({
position: myLatlnggg,
map: map,
title: 'Hello World!'
});
$scope.marker = marker;
google.maps.event.addListener($scope.marker, 'click', function(){
$location.path( '/spot' );
});
})
答案 0 :(得分:1)
对于在角度上下文之外发生的事件,请使用$scope.$apply()
建议更改角度
google.maps.event.addListener($scope.marker, 'click', function(){
$scope.$apply(function(){
$location.path( '/spot' );
});
});