Jade: обслуживание ресурсов, специфичных для маршрута - PullRequest
0 голосов
/ 26 января 2012

В моем ./inc/footer.jade есть куча тегов сценариев.Я бы хотел обслуживать дополнительный скрипт только по одному конкретному маршруту. Как это сделать?

В контроллерах я мог бы сделать:

res.render('someTemplate', {
  extraScript: true
});

и в footer.jade

- if (extraScript)
  <script src="/script.js"></script>

но тогда мне пришлось бы включать эту переменную 'extraScript' в каждый отдельный маршрут (установлен в false).

Ответы [ 2 ]

1 голос
/ 26 января 2012

Вы можете использовать typeof, чтобы проверить, существует ли переменная.

- if (typeof extraScript !== 'undefined')
  <script src="/script.js"></script>

Таким образом, для всех маршрутов, которые не нуждаются в дополнительном сценарии, вы просто не передаете extraScript, а затем в шаблоне typeof extraScript !== undefined будет оцениваться как false.

0 голосов
/ 28 января 2012

Решение extraScript работает, но я считаю, что лучшим решением было бы использование наследования шаблонов (блокирование и расширение ключевых слов).Таким образом, вам не нужно добавлять логику и локальную переменную в ваши шаблоны, и вы все равно можете хранить вещи СУХОЙ в своей нефритовой разметке.

...