<script type="text/javascript">var name="value";</script>
我需要它在 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 block (我所说的“在前面”是指按源代码顺序首先出现) p>
为了以某种灵活的方式解决这个问题,让我们使用一个槽。将页面模板中的上述行修改为如下所示
<?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";' );
);
如果您愿意,您可以通过使用组件插槽来扩展这个想法。
关于javascript - 设置 javascript 变量的 symfony 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357679/