twigからバンドルのpublic/jsディレクトリにあるjavascriptファイルに変数を渡す方法はありますか。または、テンプレートに変数を割り当ててから、varsにスクリプトファイルを含める必要がありますか?利用される?
テンプレートに変数を割り当て、JavaScriptで取得します...
<script>
var foo = '{{ foo }}';
alert(foo);
</script>
JavaScriptファイルをテンプレートとして持つ必要がないもう1つの方法は、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;
これを小枝で使うことができます
<script type="text/javascript">
/* <![CDATA[ */
var settings = {
example: {{ 'something' | trans }}
}
};
/* ]]> */
</script>
あなたはあなたのjsでそれらにアクセスできます:
console.log(settings.example);