[英]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.