在长生不老药中渲染助手

时间:2017-08-02 19:40:13

标签: elixir phoenix-framework

我希望为我的凤凰模板提供一个辅助方法来渲染导航。在我的views目录中,我添加了以下函数

def render("breadcrumbs.html", %{user: user}) do
    "<div>nav goes here</div>"
end

当我调用此渲染函数时,它显示为字符串而不是呈现HTML。我应该如何创建一个可以在所有视图上使用的辅助函数?

1 个答案:

答案 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