web-dev-qa-db-ja.com

twigからjsに変数を渡す

twigからバンドルのpublic/jsディレクトリにあるjavascriptファイルに変数を渡す方法はありますか。または、テンプレートに変数を割り当ててから、varsにスクリプトファイルを含める必要がありますか?利用される?

12
nowiko

テンプレートに変数を割り当て、JavaScriptで取得します...

<script>
var foo = '{{ foo }}';
alert(foo);
</script>
23
fire

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;
23
qooplmao

これを小枝で使うことができます

<script type="text/javascript">
    /* <![CDATA[ */
    var settings = {
        example: {{ 'something' | trans }}
        }
    };
    /* ]]> */
</script>

あなたはあなたのjsでそれらにアクセスできます:

console.log(settings.example);
0
numediaweb