2016-04-17 5 views
-1

zu speichern FYI, ich bin neu in AngularJS. Ich versuche, die Koordinaten des in Google Maps ausgewählten Markers in einer Variablen zu speichern. Ich bin in der Lage, die Koordinaten zu protokollieren, sobald ich einen Punkt auf der Karte auswähle, aber ich kann nicht herausfinden, warum $ scope.map.markers "undefined" in addSesh() zurückgibt. Bitte lassen Sie mich wissen, wenn Sie weitere Erläuterungen benötigen. Danke im Voraus!Verwenden von Google Maps und Angular JS. Versuchen, Koordinaten in Variable

angular 
    .module('surfSup') 
    .controller('SessionController', function($scope, $location, SessionService, CacheEngine, $rootScope) { 
$scope.addSesh = addSesh; 
    function addSesh() { 
     $scope.sessionObjs = { 
     time: $scope.time ? $scope.time.toISOString().slice(0,19) : "", 
     isSurf: $scope.suppy, 
     location: $scope.location 
     }; 
     console.log("session obj", $scope.sessionObjs); 
     console.log("map coords: ", $scope.map.markers); 
     SessionService.addSession($scope.sessionObjs).then(function(res){ 
     console.log('session created', res); 
     $location.path('/sessions'); 
    } 
$scope.map = { 
     center: { 
      latitude: 32.7799400, 
      longitude:-79.9341970 
     }, 
     zoom: 11, 
     markers: [], 
     events: { 
     click: function (map, eventName, originalEventArgs) { 
      var e = originalEventArgs[0]; 
      var lat = e.latLng.lat(),lon = e.latLng.lng(); 
      var marker = { 
       id: Date.now(), 
       coords: { 
        latitude: lat, 
        longitude: lon 
       } 
      }; 
      $scope.map.markers.push(marker); 
      console.log('MARKERS:', $scope.map.markers); 
      window.glow = $scope.map.markers; 
      $scope.$apply(); 
     } 
    } 
    }; 

Antwort

0

(Nicht genug info), sondern versuchen, einen Haltepunkt in der Protokollzeile zu setzen $scope.maps und kontrollieren Sie es in Werkzeuge Chrom dev. Sehen Sie, ob nicht nur $scope.maps.markers undefiniert ist, sondern auch $scope.maps (es kann auch undefiniert sein). Dann zurückgehen.

+0

Ich habe dies versucht und ich kann $ scope.maps protokollieren, aber es scheint, als ob die Daten nicht an $ scope.map.markers binden, weil es ein leeres Array zurückgibt. – wbhood

+0

Leeres Array ist anders als undefiniert. Und Sie initialisieren Marker für leere Arrays. – JonyD

+0

Yup, und wenn ich console.log ('MARKERS:', $ scope.map.markers); Es gibt ein Array mit Koordinaten zurück, aber aus irgendeinem Grund ist es leer, wenn ich versuche, es in der Funktion addSesh() zu übergeben. Mit anderen Worten, ich wähle den Marker aus, und ich werde $ scope.map.markers loggen, der die Koordinaten speichert, aber dann versuche ich $ scope.map.markers in der Funktion addSesh() zu übergeben und es gibt einfach ein leeres Array zurück . – wbhood

Verwandte Themen