_.template()
函数接受settings
作为第三个参数,允许您更改有关模板如何工作的一些内容,包括使模板更像Mustache。但这是所有设置都能做到的吗?您能否提供设置对象的完整键列表及其含义?是否可以将设置编译到模板中(因为data
参数在settings
之前,似乎提供设置和模板会导致下划线尝试立即应用模板,假设设置为是数据)。
答案 0 :(得分:7)
但这是所有设置都能做到的吗?
是的,the docs中提到了所有可能的settings
。您也可以阅读annoted source。
您能否提供设置对象的完整键列表及其含义?
interpolate
:正则表达式匹配应该逐字插入的表达式escape
:正则表达式匹配在HTML转义后应插入的表达式evaluate
:正则表达式匹配应该在不插入结果字符串的情况下进行评估的表达式。variable
:用于作为属性访问数据的变量名称,而不是使用with
语句是否可以将设置编译到模板中?
是。只需传递null
的任何虚假值(undefined
,false
,data
,...),该方法将返回模板函数,而不是立即渲染它。
答案 1 :(得分:2)
如果您查看带注释的源代码(我强烈推荐它,那里有很多很好的解释),设置的三个选项是evaluate,interpolate和escape。这是templateSettings对象的链接:
http://underscorejs.org/docs/underscore.html#section-131
我不确定我是否完全理解将设置编译到模板中的问题,但您可以设置全局模板设置(因此您不必将其作为参数传递给模板方法,如下所示:< / p>
_.templateSettings = {
interpolate: /<%=([\s\S]+?)%>/g,
evaluate: /<%([\s\S]+?)%>/g
};
很抱歉,如果这没有回答你的问题,但希望注释的来源会有所帮助。