Переменные шаблона Django в файл Javascript
В настоящее время я настроил свой проект Django таким образом, что JS переменные, которые зависят от переменных шаблона, сначала определяются в теге script в шаблоне HTML. Затем, когда шаблон запускается, JS переменная создается и добавляется в контекст Javascript, в результате чего другие внешние JS скрипты могут использовать эту переменную без объявления ее где-либо.
Html шаблон:
<body>
content
</body>
<script>
const var = "{{ my_template_var }}";
</script>
<script type="module" src="{% url 'app_name/index.js' %}"></script>
JS Script (app_name/index.js)
console.log(var) // Prints value of "my_template_var" in the form of a string
Однако мне не нравится тот факт, что переменная var
в JS-скрипте просто "волшебным образом" имеет значение, определенное в шаблоне, когда он запускается (нет никакого фактического заявления, говорящего const var = something
). Могу ли я как-то включить объявление в JS-файл (не комментарий), чтобы остальным разработчикам было немного понятнее, откуда берется переменная?
(ПРИМЕЧАНИЕ: я делаю это в основном потому, что при использовании Typescript эти переменные отображаются как неопределенные, хотя они получают значение откуда-то)
Лучший способ, который я нашел, это использование оператора declare
в файле Typescript. Таким образом, переменные, которые получили свое значение из другого тега сценария:
<!-- Index.html -->
<script>
variable = 5
</script>
<script type="text/javascript" src="script.js"></script>
Я могу просто сделать:
// script.ts that compiles into script.js
declare const variable: type;