Undercore模板-更改标记

Underscore templating - changing token markers

本文关键字:模板 Undercore      更新时间:2023-09-26

开箱即用的下划线模板使用标记<%= %>表示原始内容,<%- %>表示HTML转义内容。

我知道你可以用这样的东西来改变标记

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

但这与原始内容和转义内容有何关系?在我看来,你最终只得到了一种标记。或者我忽略了什么?

Undercore.js文档中这样说(强调部分增加):

如果ERB风格的分隔符不是你喜欢的,你可以更改Underscore的模板设置,使用不同的符号来设置插值代码。定义一个插值正则表达式以匹配应逐字插入的表达式,定义一个转义正则表达式以与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>"