2016-08-30 133 views
4

我试图访问我创建的控制器中定义的变量,以便我可以循环访问列表并将标记与Google地图API一起放置。我尝试了一堆东西,但我被卡住了。这是控制器:Angular/JS:如何将范围变量传递给javascript函数?

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 = “陨石”):

<g-map ng-if="meteorites" meteorites="meteorites"></g-map> 
+3

不幸的是,你不能在非角度JavaScript中使用角度变量。你为什么不把这些代码放在控制器中? –

+0

在这种情况下,为什么你有单独的'