Передача параметров в код Javascript на странице с использованием шаблонов Django? - PullRequest
3 голосов
/ 24 февраля 2010

У меня есть простое приложение Django, которое имеет различные представления о различных типах активов. У меня есть различные функции jQuery, которые отключают имя типа актива, и поэтому, когда я генерирую страницу с использованием шаблона django, я использую переменную шаблона для заполнения параметра типа актива в коде javascript ...

$(document).ready(function() 
{ 
    $(".project").click(function() {return FiltersChanged('{{ asset_type }}', $('#filter_entry').val());});
});

Я часто использую этот тип парадигмы в приложении, и мне это немного неловко, я обнаруживаю, что создаю много дублирующегося кода в разных файлах шаблонов просто потому, что мне нужно заполнить переменную {{asset_type}}, и я хотел бы иметь возможность уменьшить дублирование, и мне не нужно каждый раз генерировать этот код в шаблоне.

Итак, есть ли лучший способ сделать это, не требуя дублирования кода на каждой странице?

1 Ответ

2 голосов
/ 24 февраля 2010

Для часто используемых значений, подобных этому, один из вариантов - сделать так, чтобы какая-то часть вашего шаблона сбрасывала их в глобально доступный объект, и тогда ваши сценарии смогут получить доступ к значениям таким образом. Например, вы можете сделать что-то вроде этого:

<script>
  body.data('assetInfo', {
    'type': '{{ asset_type }}',
    // ...
  });
</script>

Тогда ваши скрипты могут просто перейти к элементу данных "assetInfo" в теге body, когда им понадобится этот материал. Хорошо, когда ваши скрипты могут быть свободны от серверного кода, потому что вы можете позволить клиентам их кэшировать.

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