2016-12-15 122 views
0

我想在地图显示后显示标记。我无法这样做,不管有什么错误。我确信快照是与数据和标记数组很好地创建。有没有任何逻辑错误?请帮忙。为什么标记不显示?

var apps = angular.module('appa',['firebase','uiGmapgoogle-maps']); 
 
apps.controller('mainCtrl', function($firebaseObject,$scope){ 
 

 
       var ref = firebase.database().ref(); 
 
       var marker = []; 
 
       ref.once("value") 
 
       .then(function(snapshot) 
 
       { 
 
       snapshot.forEach(function(child) 
 
       { 
 
        var mark = { 
 
        id: child.child("Id").val(), 
 
        coords: { 
 
        latitude: child.child("Lat").val(), 
 
        longitude: child.child("Long").val() 
 
        }, 
 
        options: { title: child.child("Alt").val() } 
 
        }; 
 
    marker.push(mark); 
 
       }); 
 
}); 
 

 
       $scope.map = { 
 
       center: 
 
       { 
 
        latitude: 67, 
 
        longitude: 24 
 
         }, 
 
       zoom: 3 
 
         }; 
 
    });
<body ng-app="apps"> 
 
    <div id="map_canvas" ng-controller="mainCtrl"> 
 
    <ui-gmap-google-map center="map.center" zoom="map.zoom"> 
 

 
     <ui-gmap-marker ng-repeat="m in marker" coords="m.coords" options="m.options" idkey="m.id"> 
 
      </ui-gmap-marker> 
 
        </ui-gmap-google-map> 
 
</div> 
 
<!--example--> 
 
</body>

回答

0

哦!我热切的回答我的自我。这是一个简单的错误。我没有在$ scope中定义标记数组。因此,视图没有得到var标记。我纠正了它