2010-02-09 2 views
0

Есть ли разумно элегантные средства написания простого блока 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'); ?> 

До сих пор это прекрасно работает.

ответ

1

Используйте слот в шаблоне, который вы можете заполнить из своего действия/компонента тегом javascript, единственным решением, которое приходит на ум в данный момент.

+0

О, дух! Это достаточно элегантно. Я обновляю свой вопрос по пути, который я взял. Благодарю. –

Смежные вопросы