2012-03-21 3 views
8

テンプレートのアンダースコアテンプレートでは、生の場合は<%= %>、エスケープされたHTMLの場合は<%- %>のマーカーが使用されます。どのようにこれは生に関係しないアンダースコアテンプレート - トークンマーカーの変更

_.templateSettings.interpolate = /\{\{(.+?)\}\}/g; 

しかし、およびコンテンツをエスケープ:

は、私はあなたのようなものを使用してマーカーを変更することができます知っていますか? 1つのタイプのマーカーで終わるように見えます。それとも私は何か見落としたことがありますか?

答えて

15

Underscore.js documentationが、これは(強調追加)言う:

ERB-スタイルの区切り文字は、お茶のあなたのカップでない場合は、補間されたコードをオフに設定するために異なる記号を使用する下線のテンプレート設定を変更することができます。 HTMLエスケープ後に挿入する式を一致させるエスケープ正規表現と、結果の文字列に挿入しないで評価しなければならない式を一致させるための評価正規表現を定義する補間正規表現を定義します。

だから、あなただけの_.templateSettingsオブジェクトにescape性を付与することができます

_.templateSettings.escape = /\{\{-(.*?)\}\}/g 
>>> compiled = _.template("Escaped: {{- value }}\nNot escaped: {{ value }}") 
>>> compiled({value: 'Hello, <b>world!</b>'}) 
"Escaped: Hello, &lt;b&gt;world!&lt;&#x2F;b&gt; 
Not escaped: Hello, <b>world!</b>" 
+1

ああありがとう - そのビットを逃しました。しかし、両方の設定をサンプルコードに含めるのであれば、より有益でしょう。 – UpTheCreek

関連する問題