2010-02-09 55 views
0

是否有一個合理優雅的方式寫一個簡單的JS塊到Symfony佈局的頭部?Symfony:寫內容到頭

我有一個Page模塊,其showSuccess模板知道它必須顯示多少個小部件。我需要通過use_javascript()將該號碼傳遞給外部JS文件。我知道用任何簡單的方法做的唯一方法是在渲染內容中設置一個全局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

哦,呃! 這夠優雅。我會用我帶走的路徑更新我的問題。謝謝。 – 2010-02-09 16:59:44