Javascript 使用谷歌地图和Angular JS。尝试在变量中存储坐标
仅供参考,我是AngularJS的新手。我试图将谷歌地图中选定的标记的坐标存储在一个变量中。一旦我在地图上选择了一个点,我就可以记录坐标,但我不明白为什么$scope.map.markers在addSesh()中返回“undefined”。如果您需要进一步的澄清,请告诉我。提前谢谢Javascript 使用谷歌地图和Angular JS。尝试在变量中存储坐标,javascript,angularjs,google-maps,google-maps-api-3,Javascript,Angularjs,Google Maps,Google Maps Api 3,仅供参考,我是AngularJS的新手。我试图将谷歌地图中选定的标记的坐标存储在一个变量中。一旦我在地图上选择了一个点,我就可以记录坐标,但我不明白为什么$scope.map.markers在addSesh()中返回“undefined”。如果您需要进一步的澄清,请告诉我。提前谢谢 angular .module('surfSup') .controller('SessionController', function($scope, $location, SessionService,
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();
}
}
};
(信息不够)但尝试在日志行
$scope.maps
中设置断点,并在chrome开发工具中检查它。查看是否不仅未定义$scope.maps.markers
,而且还未定义$scope.maps
(也可能未定义)。然后回溯。我确实尝试过,并且我能够记录$scope.maps,但是数据似乎没有绑定到$scope.map.markers,因为它一直返回空数组。空数组不同于未定义的数组。您正在将标记初始化为空的array.Yup,当我使用console.log('markers:',$scope.map.markers)时;它返回一个带坐标的数组,但由于某种原因,当我尝试在addSesh()函数中传递它时,它是空的。换句话说,我选择标记,然后记录存储坐标的$scope.map.markers,但是我尝试在addSesh()函数中传递$scope.map.markers,它只返回一个空数组。我想我知道我的问题,但我不知道如何解决它。选择标记时,标记不绑定到范围。