2013-02-26 67 views
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"; 

這是不是我想要的是。我只想枝杈來執行,宏後,結果獲得此:

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

任何想法如何喲能做到這一點?

+0

只是將宏的內容更改爲'「/ my-url/{{param}} /」+ {{js_var}} +「」'? – 2013-02-26 23:25:25

+0

謝謝您的評論,但重點是我不希望網址被硬編碼。 – 2013-02-27 07:44:17

回答

0

您的宏體改成這樣:

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

我不知道如果param值將被正確地傳遞。如果沒有,請嘗試以下操作:

{% set params = {} %} 
{% set params[param] = "+" ~ js_var ~ "+" %} 
{{ path(my_path, params) }}