2017-02-11 25 views
0

У меня есть ар: GMap внутри ар: диалогдостичь primefaces GMap внутри пФ р: диалог с помощью JavaScript

<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> 

Я пытаюсь получить переменную «GMAP» в файле «яваскрипта инициализации() '.

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); 
 
}

карта переменная в файле яваскрипта не инициализируется таким образом. Если я возьму p: gmap из p: dialog, он отлично работает. Как добраться до p: gmap внутри диалога p:. Это о p: gmap не инициализируется, так как p: диалог не вызывается в фазе javascript initialize()?

Заранее спасибо.

+0

Что делать, если вы удалите тонированные атрибуты –

+0

Условие является «истинным» в своих попытках. Когда я получаю p: gmap из p: dialog, он работает, но карта находится в случайном месте на странице. – gesus

+0

Как установить значение SessionBean.vehicleTracking в true, всегда ли оно true или установлено значение true на основе того, что пользователь делает на странице? Откуда происходит инициализация()? –

ответ

0

Найдите минутку или два, чтобы подготовиться - это означает, что когда $ (function() {}); вызов готового документа происходит, виджеты могут быть еще не готовы.

Окружите код в $(function() { });, как это в enter link description here

<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>