-1
参考までに、私はAngularJSを初めて使っています。 Googleマップで選択したマーカーの座標を変数に格納しようとしています。地図上のポイントを選択すると座標を記録できますが、なぜ$ scope.map.markersがaddSesh()で "undefined"を返すのかわかりません。それ以上の説明が必要な場合はお知らせください。前もって感謝します!Google MapsとAngular JSを使用しています。変数に座標を格納しようとしています
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をログに記録できましたが、データが$ scope.map.markersにバインドされていないように見えます。 – wbhood
空の配列は未定義とは異なります。空の配列にマーカーを初期化しています。 – JonyD
うん、そしてI console.log( 'MARKERS:'、$ scope.map.markers);座標を持つ配列を返しますが、何らかの理由でaddSesh()関数で渡そうとすると空です。つまり、マーカーを選択すると、座標を格納する$ scope.map.markersをログに記録しますが、addSesh()関数で$ scope.map.markersを渡そうとすると、空の配列が返されます。 – wbhood