使用角度js时,加载谷歌地图时是否会发生事件?

时间:2016-04-26 14:41:23

标签: angularjs google-maps ng-map

我正在使用angularjs和ngmap(https://ngmap.github.io)。 地图最初是从视图中隐藏的(使用ng-show),我希望能够在视图之间切换而无需重新加载整个地图。 我还想在地图上显示一个kml。

只有在显示该部分页面时才会初始化地图(使用延迟初始化)。

似乎工作正常,但有时地图无法放大到kml(使用fitBounds)。我想我已经确定这是因为包含div的高度为零(由于控制器代码在实际呈现视图之前触发),而fitBounds需要它。

我想等到我确定地图好了并准备好了。我尝试过以下事件:

  • 的bounds_changed
  • tilesloaded

但我也不想做。

目前我正在使用$ timeout,但我不喜欢它,因为我不知道初始化地图需要多长时间,以及我的代码是否会在那段时间之间触发。

我的下一个想法是反复检查地图的高度,但我更喜欢更明确的内容。

另一个想法是始终在背景中使用地图,并在该部分可见时使用绝对定位用其他信息覆盖它,但这会破坏我当前的设计。

1 个答案:

答案 0 :(得分:0)

我决定避免这个问题。

地图总是在那里,但我使用了一些ng-class来使它成为“visibility:hidden”,并在取消选择地图选项卡时隐藏不需要的滚动条。

只要隐藏可见性(而不是display:none),地图的初始化和定位就可以了。

它并不完美(我可能需要在某一天滚动其他标签),但它现在适用于我。