Лучший способ получить переменные шаблона из внешнего файла js - PullRequest
5 голосов
/ 06 сентября 2011

Это то, что я сейчас делаю для переноса переменной шаблона django в переменную JS:

<input type="hidden" id="django_var" value="{{variable}}" />
...
var unique_var = $('#django_var').val();

Есть ли более простой способ сделать это в шаблоне, что-то, что будет работать вне формтакже?Спасибо.

Обновление : переменная js будет внешним файлом шаблона и, следовательно, не сможет напрямую вызывать шаблон django vars.

Ответы [ 3 ]

18 голосов
/ 06 сентября 2011

В заголовке вашего HTML-шаблона:

<script>
var my_var = "{{ django_var }}";
</script>
<script type="text/javascript" src="/js/my_script.js"></script>

Важно отметить, что вы определяете переменные JS в заголовке перед тем, как включить свой файл JavaScript.

Затем в свой JavaScriptВы можете получить доступ к $ my_var

15 голосов
/ 06 сентября 2011

Вместо добавления скрытых мета-полей в шаблон, вы добавляете немного встроенного Javascript в шаблон:

<script>
var MyGlobal = {
  var_1: {{var_1}},
  var_2: {{var_2}},
};
</script>

Позже, во внешнем файле JS вы можете сделать:

var unique_var = MyGlobal.var_2;
1 голос
/ 06 сентября 2011

Иногда он чище, чтобы не создавать целую кучу глобальных переменных, вы можете передать их в виде параметров в файл js следующим образом:

<script type="text/javascript" src="/js/my_script.js?param1=xyz&amp;param2=abc"></script>

В вашем внешнем js вы можете легко написать метод для разбора этих параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...