Javascript: отсутствует) после списка аргументов

1

Я пытаюсь вызвать функцию javascript, которая добавляет маркер на карту Google.

Вот мой код:

   {% 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?

Большое вам спасибо за любую помощь.

Теги:
twig

1 ответ

2
Лучший ответ

1.

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

Вам нужно поставить цитату, потому что latitude, longtitude и nom будут иметь выход php-строки, а не как переменную javascript, поэтому ваша догадка добавить ' была права.

(Но все же лучше правильно <script> за пределами цикла лучше иметь это

 <script>
   {% for entreprise in entreprises %}
        addMarker('{{ entreprise.latitude }}','{{ entreprise.longitude }}','{{ entreprise.nom}}')
   {% endfor %} 
</script>
  1. Вы называете свою функцию раньше? если вы объявите свою функцию, прежде чем она, разумеется, скажет, что если не определено. Поэтому попробуйте импортировать скрипт перед вызовом функции 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), и это сработало! Тай снова!
  • 0
    Ах да, широта и долгота кажутся плавающими, так что да, вам не нужна строка :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню