2016-08-03 16 views
0

Ich arbeite gerade mit Wikitude und Google Maps in AngularJS (Ionic). Ich muss ng-click-Ereignis für InfoWindow in meinem Controller festlegen. Mein Code:HTML mit ng-Klick im Controller definieren Angular

google.maps.event.addListenerOnce($scope.map, 'idle', function(){ 

    var marker = new google.maps.Marker({ 
     map: $scope.map, 
     animation: google.maps.Animation.DROP, 
     position: latLng 
    }); 

    var infoWindow = new google.maps.InfoWindow({ 
     content: '<a href="#" ng-click="launchAR(\'my_world_pls\')">CATCH!</a>' 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infoWindow.open($scope.map, marker); 
    }); 

}); 
+0

okay. Was passiert, wenn Sie Ihren Code ausprobieren? – Srijith

+0

Nichts, Marker und Infofenster wird gerendert. Aber Link ist nicht aktiv –

+0

Kannst du die 'href' auf dem' a' Tag entfernen und versuchen? – Srijith

Antwort

0

Sie können dynamisch erstellten HTML nicht direkt mit dem Controller verknüpfen. Es gibt zwei Optionen, die in dieser link

erwähnt werden. Andere Option ist die Verwendung von jQuery. Dazu können Sie eine id an die anchor element geben und das Element nach ID suchen und click-Ereignis anhängen.

+0

Diese Lösung mit jQuery klingt gut. Aber wie hängt man ein eckiges Ereignis an: $ scope.launchAR = function() {}; –

0

Gelöst.

google.maps.event.addListenerOnce($scope.map, 'idle', function() { 

    var marker = new google.maps.Marker({ 
     map: $scope.map, 
     animation: google.maps.Animation.DROP, 
     position: latLng 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     $scope.launchAR('mana_catch_and_eat'); 
    }); 

    });