2016-08-08 21 views
0

イムは、このGoogleマップのプロジェクトに取り組んで、私は、JSONが

angular 
.module('angular-google-maps', ['uiGmapgoogle-maps']) 
.controller('mainController', controller); 

function controller ($scope, $http, $filter) { 
    $http.get('/data/markers.json').success(function(data) { 
    $scope.markers = data; 
    }); 

    $scope.map = { 
     center: { 
     latitude: 52.339287, 
     longitude: 4.925805 
     }, 
     zoom: 8, 
     markers: $scope.markers 
    }; 

$scope.options = {}; 

}; 

を動作させることはできません私が正しく理解していれば、私はちょうど使用してデータを取得することができます$ scope.markersは正しいですか?

+0

'.success'方法非推奨になっているので、 '.then'を使うべきです。また、 'data'オブジェクトに実際に期待しているものが含まれていることを確認する必要があります。私は 'console.log(JSON.stringify(data));'を呼び出すと、意図したとおりにこのオブジェクトにアクセスしていない可能性があります。 –

答えて

0

不幸ではありません。 $scope.markers = data;を割り当てると、変数が参照しているオブジェクトが変更されていますが、$scope.map.makersはまだ古い値(つまりundefined)を参照しています。以上、この来るための最も簡単な方法の

2:

1)derectly変数を参照:

$http.get('/data/markers.json').success(function(data) { 
    $scope.map.markers = data; 
    $scope.markers = data; 
}); 

2)ウォッチ:

$scope.markers = null; 
$http.get('/data/markers.json').success(function(data) { 
    $scope.markers = data; 
}); 

// This is fired whenever makers is changed 
$scope.$watch('makers', function(value) { 
    $scope.map.markers = value; 
}); 
+0

ああ、今私は参照してください ありがとう男! – meiwaku

+0

いいえ心配:)これが助けて欲しい!がんばろう –

0

あなたはthenメソッドを使用して、コールバックでmapオブジェクトを変更する必要があります=データ

$http.get('/data/markers.json').then(function(data) { 
     $scope.markers = data; 
     $scope.map.markers = data; 
}); 
0

$ scope.markers。非同期リクエストの後にコールするので、マーカー$ scope.markersは未定義の$ scope.markersを呼び出します。

0

httpからのデータの値が非同期で、$ scope.markersが非同期であるため、$ scope.map.markersでデータを取得できませんでした。初期化

TRY:

angular 
    .module('angular-google-maps', ['uiGmapgoogle-maps']) 
    .controller('mainController', controller); 

function controller ($scope, $http, $filter) { 
    $http.get('/data/markers.json').success(function(data) { 
    $scope.markers = data; 

    $scope.map = { 
     center: { 
     latitude: 52.339287, 
     longitude: 4.925805 
     }, 
     zoom: 8, 
     markers: $scope.markers 
    }; 

$scope.options = {}; 
    }); 


}; 
関連する問題