下划线模板接受的设置是什么?

时间:2013-10-14 12:28:28

标签: javascript underscore.js template-engine

_.template()函数接受settings作为第三个参数,允许您更改有关模板如何工作的一些内容,包括使模板更像Mustache。但这是所有设置都能做到的吗?您能否提供设置对象的完整键列表及其含义?是否可以将设置编译到模板中(因为data参数在settings之前,似乎提供设置和模板会导致下划线尝试立即应用模板,假设设置为是数据)。

2 个答案:

答案 0 :(得分:7)

  

但这是所有设置都能做到的吗?

是的,the docs中提到了所有可能的settings。您也可以阅读annoted source

  

您能否提供设置对象的完整键列表及其含义?

  • interpolate:正则表达式匹配应该逐字插入的表达式
  • escape:正则表达式匹配在HTML转义后应插入的表达式
  • evaluate:正则表达式匹配应该在不插入结果字符串的情况下进行评估的表达式。
  • variable:用于作为属性访问数据的变量名称,而不是使用with语句
  

是否可以将设置编译到模板中?

是。只需传递null的任何虚假值(undefinedfalsedata,...),该方法将返回模板函数,而不是立即渲染它。

答案 1 :(得分:2)

如果您查看带注释的源代码(我强烈推荐它,那里有很多很好的解释),设置的三个选项是evaluate,interpolate和escape。这是templateSettings对象的链接:

http://underscorejs.org/docs/underscore.html#section-131

我不确定我是否完全理解将设置编译到模板中的问题,但您可以设置全局模板设置(因此您不必将其作为参数传递给模板方法,如下所示:< / p>

_.templateSettings = {
      interpolate: /<%=([\s\S]+?)%>/g,
      evaluate: /<%([\s\S]+?)%>/g
  };

很抱歉,如果这没有回答你的问题,但希望注释的来源会有所帮助。