Лично я столкнулся с 3 проблемами при передаче шаблонов javascript django через инструмент jslint:
Контрольные структуры
Их можно легко спрятать в комментариях javascript, как предложил Антон Ковалев:
// {{ if some_flag }}
console.log("Conditional log");
// {{ endif }}
Строковые переменные
Очевидное решение - заключить тег django в двойные кавычки. Однако стоит помнить, что сгенерированный код может быть недействительным, если содержимое переменной не экранировано должным образом:
var javascript_var = "{{ context_var|escapejs }}";
Сложные структуры, сериализованные в json
трюк Эдвина работает:
var javascript_var;
/* {{ '*' + '/' }}
javascript_var = {{ context_json_string_var }};
// */
Если вы включите исходный шаблон javascript в шаблон html, вы можете объявить там функцию «getter» и получить к ней доступ из сценария javascript:
<script type="text/javascript">function getIt() { return {{ context_var }}; };</script>
<script type="text/javascript">{% include 'script.js' %}</script>
В таком случае исходный код javascript будет выглядеть довольно приемлемо:
/*global getIt*/
var haveIt = getIt();