![](/img/trans.png)
[英]What's the easiest way to set a variable to be what the user types as a command?
[英]What's the symfony way to set a javascript variable?
<script type="text/javascript">var name="value";</script>
我需要在use_javascript('name.js');
包含的另一個文件之前執行它use_javascript('name.js');
如何在symfony中做到?
您可以用多種方法來做
假設在您的操作方法中,您添加了一個模板變量,如下所示
$this->jsVar = 'foo';
然后,在您的模板文件中
echo javascript_tag( 'var name="' . $jsVar . '";' );
要么
<script type="text/javascript">
var name='<?php echo $jsVar; ?>';
</script>
好的,根據您的特定需求,您需要做一些事情。 首先,查看您的頁面模板(位於apps/app-name/templates
-您應該會看到類似以下內容的行
<?php include_javascripts(); ?>
該函數將采用view.yml
文件中定義的所有javascript資源或use_javascript()
幫助程序所包括的所有JavaScript資源,並將其打印到頁面上。
所以我們的目標,那么,是把一個JavaScript塊前面在所有其他腳本都包含(並在前方,我的意思是第一次出現在源序)
為了以某種靈活的方式解決此問題,讓我們使用一個插槽。 修改頁面模板中的上一行,如下所示
<?php
if ( has_slot( 'global_js_setup' ) )
{
include_slot( 'global_js_setup' );
}
include_javascripts();
?>
然后,在您的操作方法中
sfLoader::loadHelpers( 'Asset' );
$this->getResponse()->setSlot(
'global_js_setup',
, javascript_tag( 'var name="value";' );
);
如果需要,可以通過使用組件插槽擴展此想法。
為了以不use_dynamic_javascript
方式實現這一點,我建議使用use_dynamic_javascript
幫助器。
這是樹枝示例,您可以使用php。
{% if value %}
<script type="text/javascript">var name="{{ value }}";</script>
{% endif %}
如果您的腳本無法正常工作,則大多數錯誤是(在添加主腳本后定義了值),或者(您可以在主腳本中更改相同的變量,這將使您的源代碼出錯。)
如果需要粘貼許多變量,則可以使用。 像這樣
{% if js_items %}
<script type="text/javascript">
{% for item in js_items %}
var {{ item.name }} = "{{ item.value }}";
{% endfor %}
</script>
{% endif %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.