【问题标题】:Using Google Maps and Angular JS. Trying to store coordinates in variable使用谷歌地图和 Angular JS。试图将坐标存储在变量中
【发布时间】:2016-04-17 11:42:13
【问题描述】:

仅供参考,我是 AngularJS 的新手。我正在尝试将在 Google 地图中选择的标记的坐标存储在一个变量中。一旦我在地图上选择了一个点,我就能够记录坐标,但我无法弄清楚为什么 $scope.map.markers 在 addSesh() 中返回“未定义”。如果您需要进一步说明,请告诉我。提前致谢!

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();
      }
  }
  };

【问题讨论】:

    标签: javascript angularjs google-maps google-maps-api-3


    【解决方案1】:

    (信息不足)但尝试在日志行 $scope.maps 中设置断点并在 chrome 开发工具中检查它。查看是否不仅 $scope.maps.markers 未定义,而且 $scope.maps 也未定义(也可能未定义)。然后原路返回。

    【讨论】:

    • 我确实尝试过这个并且我能够记录 $scope.maps 但数据似乎没有绑定到 $scope.map.markers 因为它一直返回一个空数组。
    • 空数组与未定义不同。而且您正在将标记初始化为空数组。
    • 是的,当我 console.log('MARKERS:', $scope.map.markers);它返回一个带有坐标的数组,但由于某种原因,当我尝试在 addSesh() 函数中传递它时它是空的。换句话说,我选择了标记,我将记录存储坐标的 $scope.map.markers,但随后我尝试在 addSesh() 函数中传递 $scope.map.markers,它只返回一个空数组.
    • 我想我知道我的问题,但我不知道如何解决它。当我选择我的标记时,没有绑定到范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2012-10-18
    相关资源
    最近更新 更多