我希望为我的凤凰模板提供一个辅助方法来渲染导航。在我的views目录中,我添加了以下函数
def render("breadcrumbs.html", %{user: user}) do
"<div>nav goes here</div>"
end
当我调用此渲染函数时,它显示为字符串而不是呈现HTML。我应该如何创建一个可以在所有视图上使用的辅助函数?
答案 0 :(得分:2)
默认情况下,Phoenix中的EEx将使用<%= ... %>
转义所有插入的内容,以防止XSS攻击。您可以使用Phoenix.HTML.raw/1
将字符串标记为可安全插入而不进行任何转义。所以,在你的辅助函数中,你应该这样做:
def render("breadcrumbs.html", %{user: user}) do
raw("<div>nav goes here</div>")
end
如果您信任HTML,请务必仅使用此选项。如果没有某种清理,你不应该在任意用户输入上调用raw
。