使用javascript在pf p:对话框中到达一个primefaces gmap

时间:2017-02-11 11:29:05

标签: google-maps jsf primefaces dialog

我在p:对话框中有一个p:gmap

<p:dialog widgetVar="vehicleTrackingDlg" rendered="#{sessionBean.vehicleTracking}" 
              width="630" height="405" modal="true" appendTo="@(body)" resizable="false" header="Map">
        <p:gmap id="map" center="30, 20" zoom="13" type="ROADMAP" fitBounds="true" 
                style="width:600px;height:400px" widgetVar="gmap" rendered="#{sessionBean.vehicleTracking}" /> 
</p:dialog>

我试图获得&#39; gmap&#39; javascript文件中的变量&quot; initialize()&#39;功能

&#13;
&#13;
function initialize()
{
    map = PF('gmap').getMap();

    directionsService = new  google.maps.DirectionsService();
    directionsDisplay = new google.maps.DirectionsRenderer();

    markerMe = new google.maps.Marker({title: "Ben"});

    markerSelectedVehicle = new google.maps.Marker();
    var image = '../resources/images/favicon_red.ico';
    markerSelectedVehicle.setIcon(image);
}
&#13;
&#13;
&#13;

javascript文件中的

映射变量未以这种方式初始化。 如果我从p:对话框中取出p:gmap它可以正常工作。 如何在p:对话框中找到p:gmap。 它是关于p:gmap未初始化,因为在javascript initialize()阶段没有调用p:dialog吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

花一两个时间做好准备 - 这意味着当$(function(){});文档就绪调用发生时,小部件可能还没有准备好。

enter link description here

中将您的代码包围在$(function() { } );
   <script type="text/javascript">
$(function() { 

    var map = PF('gmap').getMap();

    directionsService = new  google.maps.DirectionsService();
    directionsDisplay = new google.maps.DirectionsRenderer();

    markerMe = new google.maps.Marker({title: "Ben"});

    markerSelectedVehicle = new google.maps.Marker();
    var image = '../resources/images/favicon_red.ico';
    markerSelectedVehicle.setIcon(image);

} );
</script>