2017-08-02 11 views
0

ナビゲーションをレンダリングする私のフェニックステンプレートのヘルパーメソッドが必要です。私の見解ディレクトリには、私は次の関数 エリクシールのレンダーヘルパー

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

関連する問題