html - PrimeFaces 对话框中的传单地图不正确渲染
问题描述
尝试将 Leaflet 地图输入 PrimeFaces 对话框。我遇到了渲染不正确的问题。地图位置不正确,看起来地图相对于 index.html 而不是对话框开始定位。下一个问题:尺寸不正确。对话之外的相同代码可以正常工作。如何改变这个?
<h:head>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css" />
</h:head>
<h:body>
<ui:composition>
<script src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>
<p:dialog id="map" header="Mapa:" widgetVar="wigetMapDialog" height="800px" width="1200px" showEffect="clip" hideEffect="clip" resizable="false" closable="true" dynamic="true" modal="true">
<div id="mapid" style="width: 1180px; height: 780px;"></div>
<script>
var mymap = L.map('mapid').setView([50.9547215, 16.9126256], 18);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(mymap);
</script>
</p:dialog>
</ui:composition>
</h:body>
</html>
我的对话框:
当我在里面移动地图时:
解决方案
这是我的解决方案:
<script type="text/javascript">
jQuery(document).ready(function ($) {
mymap.invalidateSize();});
</script>
谢谢你的提示。
推荐阅读
- java - (Bug) 迭代列表后返回错误值
- java - 如何将变量从 freemaker 模板传递到 xml 文件
- javascript - Ramda,在函数中发送参数
- c# - wpf RichTextBox 中的 Selection.Load() 事件
- python - Create Engine(SQLalchemy) for GCP database in a python script
- ruby - golang 中的语法糖方法,如 Ruby
- javascript - 从 Angular 4 升级到 7 导致问题
- c# - 如何在 C# 中为 Memory Stream 编写单元测试?
- codeigniter - 如何解决 codeigniter 中的“Twig\Error\LoaderError”
- bash - 我如何在 postgresql 中自动创建数据库