Есть ли достаточно элегантный способ записи простого блока JS в заголовок макета Symfony?
У меня есть модуль Page
, чей шаблон showSuccess
знает, сколько виджетов он должен отображать. Мне нужно сообщить этот номер внешнему файлу JS, включенному через use_javascript()
. Единственный способ, которым я знаю, сделать это с любой простотой - это установить глобальную переменную JS в отображаемом контенте, который может быть прочитан внешним исходным файлом.
Я использовал ту же технику для других значений пути, которые известны макету, но в этом случае только сама страница знает это значение. Я не могу найти способ написать простую строчку JS в голову. Я пробовал это:
<?php echo javascript_tag(); ?>
var c_widgets = <?php echo count( $widgets ); ?>
<?php echo end_javascript_tag(); ?>
К сожалению, он пишет непосредственно в содержимое страницы, и я бы хотел этого не делать. Я могу сделать это довольно легко с CakePHP и Rails, но мне не удалось найти аналогичное решение для Symfony.
UPDATE
В соответствии с ответом TheGrandWazoo, приведенным ниже, вот что я наконец-то сделал:
# showSuccess.php
<?php use_helper( 'JavascriptBase' ) ?>
<?php slot( 'scripts_for_head' ) ?>
<?php echo javascript_tag(); ?>
var c_widgets = <?php echo count( $widgets ); ?>
<?php echo end_javascript_tag(); ?>
<?php end_slot(); ?>
# layout.php
<?php include_slot( 'scripts_for_head' ); ?>
Пока все работает прекрасно.