2017-06-02 19 views
1

我試圖調用一個在Google Map上添加標記的javascript函數。Javascript:missing)參數列表

這裏我的代碼:

{% for entreprise in entreprises %} 
     <script> addMarker({{ entreprise.latitude }},{{ entreprise.longitude }},{{ entreprise.nom}})</script> 
    {% endfor %} 

這裏我的功能:

function addMarker(latitude,longitude,nom) 
{ 
    var marker = new google.maps.Marker({ 
     position: {lat: latitude, lng: longitude}, 
     map: map, 
     label: nom, 
     title: nom 
    }); 

} 

我得到一個錯誤:missing) after argument list 當我嘗試引用這樣我的變量:

<script> addMarker('{{ entreprise.latitude }}','{{ entreprise.longitude }}','{{ entreprise.nom}}')</script> 

我收到錯誤:

addMarker() is not defined. 

如何在Twig中調用我的函數?

非常感謝您的幫助。

+1

哪一個呢? 「缺少)參數列表」或「addMarker()'未定義」? –

+0

你不能使用模板字符串嗎? –

+0

嗨,當我讓我沒有報價,我得到「失蹤)後參數列表」錯誤 – devicz

回答

2

1.

{% for entreprise in entreprises %} 
     <script> addMarker({{ entreprise.latitude }},{{ entreprise.longitude }},{{ entreprise.nom}})</script> 
    {% endfor %} 

你需要把報價,因爲latitudelongtitudenom將PHP字符串的輸出而不是JavaScript的一個變量,以便你的猜測增添'是正確的。

(但它仍然是一個循環外更好的權<script> 最好是有這個

<script> 
    {% for entreprise in entreprises %} 
     addMarker('{{ entreprise.latitude }}','{{ entreprise.longitude }}','{{ entreprise.nom}}') 
    {% endfor %} 
</script> 
  • 你之前打電話給你的功能?如果你之前聲明你的函數當然會說,如果沒有定義。因此,嘗試調用你的函數addMarker
  • 你使用jQuery()之前導入的腳本嗎?如果是的話,你可以使用

    $(document).ready(function(){});

    所以,你可能會得到

    <script> 
        $(document).ready(function() { 
        {% for entreprise in entreprises %} 
         addMarker('{{ entreprise.latitude }}','{{ entreprise.longitude }}','{{ entreprise.nom}}') 
        {% endfor %} 
        }); 
    </script> 
    
    +0

    嗨,謝謝你的幫助。 addMarker在調用之前未被聲明。我只引用了字符串(entreprise.nom),它起作用了! Ty再次! – devicz

    +0

    噢,經度和緯度似乎是浮動的,所以是啊你不需要字符串:) – henrily