是否有某种方法可以将变量从twig传递到位于bundle的public / js目录中的javascript文件。或者我是否需要在模板中分配变量,然后包含我的脚本文件,其中将使用变量?
答案 0 :(得分:23)
在模板中分配变量并使用javascript ...
进行选择<script>
var foo = '{{ foo }}';
alert(foo);
</script>
答案 1 :(得分:22)
另一种不必将javascript文件作为模板的方法是将javascript值作为data-*
属性,然后从您的javascript文件中获取。这意味着您的javascript不一定会与您的twig文件相关联。
<a href="#" data-id="{{ entity.id }}" id="some-link">Link</a>
使用jQuery ..
var id = $('#some-link').data('id');
使用常规javascript(我认为)..
var id = document.querySelector('#some-link').dataset.id;
答案 2 :(得分:0)
你可以在枝条中使用它
<script type="text/javascript">
/* <![CDATA[ */
var settings = {
example: {{ 'something' | trans }}
}
};
/* ]]> */
</script>
然后你可以在你的js中访问它们:
console.log(settings.example);