0

次のようなマクロを作成しました。

{% macro _path(my_path, param, js_var) %}
{% spaceless %}
    path('{{ my_path }}', { '{{ param }}': "%s" }) | url_decode | format('"+{{ js_var }}+"') | raw
{% endspaceless %}
{% endmacro %}

このように呼び出すと:

window.location ="{{ js.path('hqf_pizzas_searchpage', 'cp', 'monCP') }}";

それは機能しますが、これを生成します:

window.location ="path('hqf_pizzas_searchpage', { 'cp': "%s" }) | url_decode | format('"+monCP+"') | raw";

これは私が望むものではありません。マクロの後に Twig に結果を実行させて、これを取得したいと思います。

window.location ="/my-url/cp/"+monCP+"";

どのようにこれを行うことができますか?

4

1 に答える 1

0

マクロ本体を次のように変更します。

{{ path(my_path, { param: "+"~js_var~"+" }) }}

の値paramが正しく渡されるかどうかはわかりません。そうでない場合は、これを試してください:

{% set params = {} %}
{% set params[param] = "+" ~ js_var ~ "+" %}
{{ path(my_path, params) }}
于 2013-02-27T06:12:30.003 に答える