Как передать переменную jinja в обработчик события на javascript
Мне нужно передать переменную jinja в обработчик события onclick, который создаёт яндекс карту по id и center
{% set id = 10 %}
{% set center = [50, 50] %}
<button onclick="createMap('ymap_' + {{ id }}, {{ center }})"></button>
Такой код не работает, я получаю такие ошибки:
Property assignment expected.
',' expected.
Argument expression expected.
Property assignment expected.
',' expected.
Ошибки перечислены в таком порядке, в каком они подсвечены на картинке.
Ответы (1 шт):
Для того чтобы исправить эти ошибки, нужно обернуть значения переменных id и center в кавычки, чтобы они были правильно переданы в функцию createMap как строки.
Вот как должен выглядеть исправленный код:
{% set id = 10 %}
{% set center = [50, 50] %}
<button onclick="createMap('ymap_' + '{{ id }}', '{{ center }}')"></button>
Обратите внимание, что также нужно добавить кавычки вокруг значений переменных id и center, чтобы они были правильно интерпретированы как строки.
В качестве альтернативы, вы также можете использовать функцию escapejs из Jinja2 для корректной экранировании переменных:
<button onclick="createMap('ymap_' + {{ id|escapejs }}, {{ center|escapejs }})"></button>
