访问 {{ }} symfony twig 中的 javascript 变量
Accessing javascript variable inside {{ }} symfony twig
我有一个数组 arr 从控制器发送到包含一些 JavaScript 脚本的树枝模板,我想使用 for 循环来访问数组的行,如下所示:
for (var i = 0; i < 3; i++) {
alert('{{ arr[i] }}');
}
但是变量 i 未知,我得到这个错误:
Variable "i" does not exist.
有什么建议吗?
Twig 是 PHP。您将其值发送到 javascript,但不能将 javascript 变量发送到 php。 (除了 AJAX 等...但与此处无关)
可能:
/* javascript variable */
var name = {{ object.name }}
console.log(name);
不可能:
/* javascript variable */
var name = 'toto';
{# Twig #}
{{ name }} // <- IMPOSSIBLE
这是如何通过 twig 从控制器获取 php 数组到 javascript 数组:
控制器
return $this->render(
'AppBundle:index.html.twig',
array(
'myArray' => array('foo', 'bar', 'z')
)
);
树枝视图
{% block javascripts %}
<script type="text/javascript">
var myArray = '{{ myArray | json_encode | raw }}';
</script>
{% endblock %}
我有一个数组 arr 从控制器发送到包含一些 JavaScript 脚本的树枝模板,我想使用 for 循环来访问数组的行,如下所示:
for (var i = 0; i < 3; i++) {
alert('{{ arr[i] }}');
}
但是变量 i 未知,我得到这个错误:
Variable "i" does not exist.
有什么建议吗?
Twig 是 PHP。您将其值发送到 javascript,但不能将 javascript 变量发送到 php。 (除了 AJAX 等...但与此处无关)
可能:
/* javascript variable */
var name = {{ object.name }}
console.log(name);
不可能:
/* javascript variable */
var name = 'toto';
{# Twig #}
{{ name }} // <- IMPOSSIBLE
这是如何通过 twig 从控制器获取 php 数组到 javascript 数组:
控制器
return $this->render(
'AppBundle:index.html.twig',
array(
'myArray' => array('foo', 'bar', 'z')
)
);
树枝视图
{% block javascripts %}
<script type="text/javascript">
var myArray = '{{ myArray | json_encode | raw }}';
</script>
{% endblock %}