我有一块模板,如下:
<div class="reply_text"><div class="wall_reply_text">
{{ reply.comment_text is empty ? '<div class="has-text-grey-light">This comment is empty.</div>' : reply.comment_text }}
</div></div>
它没有使用类This comment is empty.
来显示has-text-grey-light
,而是从字面上显示了此未转义的文本:<div class="has-text-grey-light">This comment is empty.</div>
。
我相信以前我已经做过类似的事情,并且输出正确。怎么了?
答案 0 :(得分:1)
尝试使用'raw'过滤器。
{{ var|raw }} {# var won't be escaped #}
{{ (true ? '<b>Hello 1</b>' : '<p>Hello 2</p>')|raw }}
原始过滤器将该值标记为“安全”,这意味着在启用了自动转义的环境中,如果将原始过滤器应用于最后一个过滤器,则不会对该变量进行转义:
<div class="reply_text">
<div class="wall_reply_text">
{{ (reply.comment_text is empty ? '<div class="has-text-grey-light">This comment is empty.</div>' : reply.comment_text) | raw }}
</div>
</div>
另一种方法是在不需要使用原始过滤器的地方使用if else语句。
{% if reply.comment_text is empty %}
<div class="has-text-grey-light">This comment is empty.</div>
{% else %}
{{ reply.comment_text }} {# if required {{ reply.comment_text | raw }} #}
{% endif %}