访问{{}}内部的javascript变量symfony twig

时间:2017-04-12 14:57:02

标签: javascript twig symfony-2.3

我有一个从控制器发送到包含一些JavaScript脚本的twig模板的数组arr,我想用循环来访问数组的行,如下所示:

for (var i = 0; i < 3; i++) {
                alert('{{ arr[i] }}');
            }

但变量i未知,我收到此错误:

  

变量&#34;我&#34;不存在。

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

这是如何通过twig将控制器中的php数组转换为javascript数组:

控制器

return $this->render(
    'AppBundle:index.html.twig',
     array(
         'myArray' => array('foo', 'bar', 'z')
     )
);

Twig view

{% block javascripts %}
    <script type="text/javascript">
        var myArray = '{{ myArray | json_encode | raw }}';
    </script>
{% endblock %}

答案 1 :(得分:1)

Twig是PHP。您将其值发送到javascript但您无法将javascript变量发送到php。 (除了AJAX等......但这里不相关)

可能的:

/* javascript variable */
var name = {{ object.name }}
console.log(name);

不可能:

/* javascript variable */
var name = 'toto';
{# Twig #}
{{ name }} // <- IMPOSSIBLE