3

通常、Underscore.js によるテンプレート化を使用する場合、Underscore.jsによって解析されるよう<% ... %>に見える任意の式<%= ... %>

<% ... %>テンプレート内にテキストを埋め込みたい場合、そのような値をエスケープするにはどうすればよいですか?

言い換えれば、Underscore.js に、プレースホルダーのように見えるがプレースホルダーではないものを無視するように指示するにはどうすればよいでしょうか?

ある種のエスケープを使用する必要があると思いますが、通常\は機能しません。入力すると

_.template('<%= name %> ### \<%= name %>', { name: 'foo' });

foo ### fooは結果として得ますが、これは明らかに私が望んでいたものではありません。

更新:より明確にするために、上記の行から何を求めているか-結果は次のようになります

foo ### <%= name %>
4

2 に答える 2

3

最終出力が HTML になる場合は、<>を HTML エスケープ コードに置き換えることができます。

_.template('<%= name %> ### &lt;%= name %&gt;', { name: 'foo' });

これらをサポートするようにUnderscore のテンプレート設定を変更することもできます<%= ... %>

_.templateSettings = {
    interpolate: /\{\{(.+?)\}\}/g
};
var t = _.template('{{name}} ### <%= name %>', { name: 'foo' });
于 2013-01-30T20:14:43.797 に答える