我想生成一個 div,其中存在或不存在特定的 HTML 屬性,my_var
取決于是否定義了變數。如果已定義,則應將其值用作相應的屬性。
my_var
要么未定義,要么等于由空格分隔的幾個單詞組成的值(軟體需要這些,我知道這不常見......)。
我嘗試了以下方法:
<div class="container" {{ my_var ? "data-my-var='" ~ {{ my_var }} ~ "'" : ""}}>
</div>
但這會轉義我使用的引號并在我的輸出中產生這樣的東西my_var = hello there how are you
:
<div class="container" data-my-var="hello there how are you">
</div>
當我使用轉義引號時,這不會改變
"data-my-var=\"" ~ {{ my_var }} ~ "\""
而不是上面寫的。
我也嘗試簡單地省略引號,所以這樣做:
"data-my-var=" ~ {{ my_var }}
這導致data-my-var
輸出的屬性沒有任何引號;因此只識別 的值的第一個單詞my_var
。
那么我怎樣才能達到我想要的呢?
uj5u.com熱心網友回復:
默認情況下,變數和與變數的串聯未標記為安全。您需要應用過濾器raw
將輸出標記為安全。如果您只回傳一個空字串,您也可以省略第二部分
<div class="container"{{ my_var ? (' data-my-var="' ~my_var ~ '"')|raw }}>
</div>
演示
正如@Bossman 所評論的,另一種方法是使用{% if ... %}{% endif %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425508.html