我正在尝试访问我创建的控制器中定义的变量,以便我可以循环列表并在Google地图API中放置标记。 我尝试了很多方法,但我卡住了。 这是控制器:
app.controller('MainController', ['$scope', 'meteorite', function($scope, meteorite) {
meteorite.success(function(data) {
$scope.meteorites = data;});
}]);
这是我试图访问变量的部分。
<div id="map">
</div>
<div class="main" ng-controller="MainController">
<div id="stuff" ng-repeat="meteorite in meteorites">
<h1>{{meteorite.name}} : {{meteorite.mass | number}}</h1>
</div>
</div>
<script>
var map;
var myLatLng = {lat: -25.363, lng: 131.044};
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: myLatLng,
zoom: 10
});
for (var i = 0; i < [This is where i want to access meteorites]; i++) {
var marker = new google.maps.Marker({
position: {meteorites[i].lat, meteorites[i].long},
map: map
});
}
}
</script>
编辑
在添加了一个条件 (ng-if="meteorites") 后,我接收到的答案完美地运行了:
<g-map ng-if="meteorites" meteorites="meteorites"></g-map>
<script>
标签呢?正如Nicolas所说,这可以很容易地放入您的控制器中。您甚至可以将Angular变量传回页面以供其他脚本使用。必须有一个原因来使用单独的脚本标记;如果您告诉我们该原因,它将有助于我们回答您的问题。 - George Stocker