2016-06-12 3 views
1

Я разрабатываю свое первое приложение AngularJS2 с картой Google. Я хочу перенаправить пользователя на другую страницу (используя AngularJS Routing) при нажатии маркера.Перенаправление на другую страницу при нажатии на Карт Google Maps

В настоящий момент ничего не происходит. Я думаю, что это общая проблема понимания событий в 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'); 
    }); 

}) 
+1

ли маркер нажмите событие работает? Должен использовать '$ apply()' для событий, которые находятся вне углового контекста – charlietfl

+0

@charlietfl спасибо! это помогает! Было бы создано, если вы опубликуете его как ответ, чтобы я мог отметить его! – rakete

ответ

1

Для событий, которые происходят за пределами углового использования контекста $scope.$apply() проконсультировать Угловыми изменения

google.maps.event.addListener($scope.marker, 'click', function(){ 
    $scope.$apply(function(){ 
     $location.path('/spot'); 
    });  
}); 
Смежные вопросы