2017-08-31 54 views
0

我是使用Jinja的新手,並且正在嘗試使用我的應用程序中的宏。所以我有一個宏,使用特殊的呼叫塊,像這樣調用另一個:Flask Jinja宏<input caller =「Macro Anonymous」>

{% macro macro1(x, y) %}      
    <div class="row"> 
     {% call macro2(x,y)%}{% endcall %} 
    </div>      
{% endmacro %} 

但當我查看渲染的模板,我可以在我的輸入字段中看到一個陌生來電者屬性:

<input caller="<Macro anonymous>"> 

我做錯了什麼,我只想知道爲什麼會發生這種情況?

回答

0

這是因爲您正在調用的宏未定義。

您定義了macro1,但您打電話給macro2

{% macro macro1(x, y) %}      
    <div class="row"> 
     {% call macro1(x,y)%}{% endcall %} 
    </div>      
{% endmacro %} 

有一個在documentation一個很好的例子也是如此。

+0

嗨Mekicha,感謝您的鏈接。我只是想問,我已經在同一個文件中定義了兩個宏,所以不應該定義macro2? –

+0

是的,你可以定義。但如果你打電話,你必須調用一個預定義的宏已經 – Mekicha

+0

我注意到在我的文件中,當我定義了這兩個宏和第二個宏調用第一個時,我仍然有同樣的問題。但是這不應該發生,因爲我正在調用一個預定義的宏,它是上面的那個宏? –