2012-03-12 7 views
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がエスケープされています。

さらに、誰かがこれを解決するより良い解決策を持っている場合。お願いします。

+1

はこれを試してエスケープする必要はありませんいつでもrawメソッドを使用する必要があります:):<%=生html_templates%>それをやった –

+0

!あなたは答えとしてそれを追加したい場合は無料で感じる:) – Morten

答えて

1

おかげでとても基本的に、あなたは出力が

関連する問題