1
私はknockout.jsでクライアント側テンプレートを使用しているサイトで作業しています。先頭の要素をレールに書き込む
バックエンドのapiとloginは、railsで書かれています。
私がしたいことは、クライアント側の各HTMLテンプレートを別々のファイルに入れて、それらのテンプレートをテンプレートを使用してページに持たせることです。
ディレクトリ内の各テンプレートは、type = "text/html"というスクリプトタグのページにページに追加する必要があります。
これまでのところ、実際のテンプレートコンテンツを製品化するために、headプロパティのhtml.erbファイルに入れたいだけです。 しかし、HTMLではなく通常のテキストとしてBodyに常に格納されます。
私は私のコントローラで、以下の方法で定義されている:私はそうのような.erbレイアウトファイルに追加しよう
def html_templates
output = ''
templates = Dir.glob 'app/assets/templates/*'
templates.each { |template|
file = File.open(template, "rb")
output += '<script type="text/html" id="'+(File.basename template, '.html')+'">'
output += file.read
output += '</script>'
}
return output
end
を:
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%= html_templates %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
しかし、出力は常に入れています体は、すべてのHTMLがエスケープされています。
さらに、誰かがこれを解決するより良い解決策を持っている場合。お願いします。
はこれを試してエスケープする必要はありませんいつでも
raw
メソッドを使用する必要があります:):<%=生html_templates%>それをやった –!あなたは答えとしてそれを追加したい場合は無料で感じる:) – Morten