繁体   English   中英

Symfony2将变量从控制器传递到javascript

[英]Symfony2 pass variable from controller to javascript

我有这个controller.php

    $repository = $this->getDoctrine()->getManager()->getRepository('TechappStatsBundle:ParentForm');
    $data = $repository->findBy(array(),array('id' => 'desc'),1,0); 

    $formulaire = new ParentForm();

    $parent= $this->get('form.factory')->create(new ParentFormType(),$formulaire);

    if ($parent->handleRequest($request)->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($formulaire);
        $em->flush();
    }

    return $this->render('TechappStatsBundle:Stats:index.html.twig',array("res" => $data,
        "parentform"=>$parent->createView(),));

我想用js检查视图中的变量res是否等于特定值,但我不知道如何传递它。

您可以像这样通过控制器传递参数:

return $this->render('TechappStatsBundle:Stats:index.html.twig', array(
                "res" => "Your data here"));

您可以像这样访问index.html.twig中的“ res”参数:

{% block js %}
 <script type="text/javascript">
var res = '{{ res }}';
alert(res);
</script>
{% endblock %}

我的选择始终是将其发送到data-value

你可以做类似的事情

<div id="res-result" data-res="{{ res }}" style="display: none;">

div不需要隐藏,即使它与div有关,我也总是将其放在与div有关的内容中,即使它不是隐藏的也是如此

然后从Jquery:

resValue = $('#res-result').data('res');

将JS文件放在HTML之外是IMO最干净的方法

如果要将数据传递给Javascript,可以将视图更新为以下任意一种:

  • 添加一个包含数据值的隐藏输入(如果是表单)
  • 将数据添加到用CSS隐藏的DIV或P(或其他任何数据)中
  • 将属性添加到特定字段,例如data-<field>

一旦获得它,就可以轻松地从jQuery获取值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM