我正在使用angularjs和ngmap(https://ngmap.github.io)。 地图最初是从视图中隐藏的(使用ng-show),我希望能够在视图之间切换而无需重新加载整个地图。 我还想在地图上显示一个kml。
只有在显示该部分页面时才会初始化地图(使用延迟初始化)。
似乎工作正常,但有时地图无法放大到kml(使用fitBounds)。我想我已经确定这是因为包含div的高度为零(由于控制器代码在实际呈现视图之前触发),而fitBounds需要它。
我想等到我确定地图好了并准备好了。我尝试过以下事件:
但我也不想做。
目前我正在使用$ timeout,但我不喜欢它,因为我不知道初始化地图需要多长时间,以及我的代码是否会在那段时间之间触发。
我的下一个想法是反复检查地图的高度,但我更喜欢更明确的内容。
另一个想法是始终在背景中使用地图,并在该部分可见时使用绝对定位用其他信息覆盖它,但这会破坏我当前的设计。
答案 0 :(得分:0)
我决定避免这个问题。
地图总是在那里,但我使用了一些ng-class来使它成为“visibility:hidden”,并在取消选择地图选项卡时隐藏不需要的滚动条。
只要隐藏可见性(而不是display:none),地图的初始化和定位就可以了。
它并不完美(我可能需要在某一天滚动其他标签),但它现在适用于我。