Есть ли разумно элегантные средства написания простого блока JS на голове схемы Symfony?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'); ?>
До сих пор это прекрасно работает.
О, дух!
Это достаточно элегантно. Я обновляю свой вопрос по пути, который я взял. Благодарю. –