web-dev-qa-db-ja.com

Silexフレームワークを使用したTwigテンプレートでのJavascript変数の使用

Twigテンプレート内のJavascript内にルートを作成しようとしていますが、ルートパラメーターの値としてJS変数を使用する必要があります。

例:

window.location.href = {{ path('post_display', { 'id': this_is_where_i_need_to_use_the_js_var }) }};

Silexフレームワークを使用していますが、FOSJSがSilexで機能するかどうかわかりません。しかし、そうは思わない。

16
Moismyname

Twigは、PHPで記述されているため、JavaScriptコードとは完全に独立してサーバー上で実行されるため、必要な回避策が必要です。

まず、ルートを生成しますが、プレースホルダーを使用し、必要に応じてそれを変数の値に置き換えます。

var route = "{{ path('post_display', { 'id': "PLACEHOLDER" }) }}";
window.location = route.replace("PLACEHOLDER", js_variable);

このようなものがあなたのために働くはずです。

41
Maerlyn