2017-08-02 68 views
0

我想爲我的鳳凰模板呈現導航的幫助方法。在我的意見目錄我加入了以下功能在elixir中渲染助手

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

當我把這個渲染功能,它顯示爲一個字符串,而不是呈現的HTML。我應該如何創建一個可用於所有視圖的幫助函數?

回答

2

默認情況下,Phoenix中的EEx將轉義所有使用<%= ... %>插入的內容以防止XSS攻擊。您可以使用Phoenix.HTML.raw/1將字符串標記爲可安全插入而不會發生任何轉義。所以,在你的幫助函數中,你應該這樣做:

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

確保只有在你信任HTML的情況下才能使用它。對於任意用戶輸入,您不應該撥打raw,也不要進行某種消毒。

+0

謝謝。是否有一個通用的地方供所有eex文件訪問? –

+0

我不確定你的意思是「所有eex文件訪問的通用地點」.. – Dogbert