1

这是有效的:

<h:panelGroup layout="block" id="map-wrapper">
                <p:gmap center="#{locationService.getLatLngAsString(userSession.location)}"
                        zoom="15"
                        type="HYBRID"
                        model="#{addOfferController.emptyModel}"
                        onPointClick="handlePointClick(event);"
                        style="width:600px;height:400px"/>
            </h:panelGroup>

这不是:

<h:panelGroup layout="block" id="map-wrapper" style="display: none">
                <p:gmap center="#{locationService.getLatLngAsString(userSession.location)}"
                        zoom="15"
                        type="HYBRID"
                        model="#{addOfferController.emptyModel}"
                        onPointClick="handlePointClick(event);"
                        style="width:600px;height:400px"/>
            </h:panelGroup>

在第二个代码中,地图包装器内只有具有指定高度和宽度的 div。

可能是什么原因?

谢谢!

4

1 回答 1

2

原因是某些 PF 组件需要维度信息才能在客户端呈现自己。当它们在具有 的容器中时display: none;,经常会出现问题。

我刚刚找到了一种解决方法:

  • 将 widgetVar 属性添加到您的 g:map 组件widgetVar="gmap"
  • 在同一页面中,添加此 javascript<script type="text/javascript">gmap._render();</script>
于 2014-04-15T09:55:53.037 回答