使用Google Maps API和AngularJS(1.5.8)。在循环中创建标记后,我无法访问它们。这个代码在initMap函数中:
<ui:UnitTextBox Grid.Row="1" Background="Tomato" Style="{StaticResource WeightTbStyle}" UnitText="KG" Text="{Binding TargetWeight, UpdateSourceTrigger=PropertyChanged}"/>
编辑:
错误在
var markers = [];
for(var i=0; i<10; i++){
var html = $scope.posts[i].address;
var marker = new google.maps.Marker({
map: map,
position: {lat: parseFloat($scope.posts[i].lat), lng: parseFloat($scope.posts[i].lng)}
});
markers.push(marker);
bindInfoWindow(markers[i], map, infoWindow, html);
}
markers // no error messages, nothing
console.log(markers); // still nothing
更改为:
for(var i=0; i<10; i++){
感谢@Maxx并感谢所有试图提供帮助的人。 那是一个愚蠢的错误。
答案 0 :(得分:3)
错误:$ scope.posts [i]未定义“
该脚本在行var html = $scope.posts[i].address;
上抛出异常。它在那时停止运行。因此,永远不会达到 console.log(markers);
但是..我想 - 好的,但它正在工作(标记在地图上显示)
你在循环中。显示了一些标记,然后其中一个值未定义(不是第一个值!),因此您得到一个异常并且脚本停止。
您可以通过循环到数组的length
而不是硬编码的10
项来解决此问题。
,稍后再考虑这个错误。
始终先处理第一个错误。它们通常是后续错误的原因。