javascript - 设置 javascript 变量的 symfony 方法是什么?

标签 javascript symfony1

<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/

相关文章:

symfony1 - 将 memcache 设置为默认值,仅适用于 symfony 中的条令查询

javascript - 使用 .ajax() 加载远程 URL - 不工作

javascript - Elasticsearch 和 Firebase : Result limit change and weird query results

javascript - 设置雷达图标记的颜色

jquery - Symfony ajax 字段验证

symfony1 - 交响乐团 : Sharing a partial between two component actions

javascript - 如果父元素重复则移动子元素

javascript - 如何从 JavaScript 中的对象数组中检索属性值

php - 在 symfony 中,如何设置表单字段的值?

routes - 如何在 Symfony 中传递 URL 中的普通参数?