2013-10-14 32 views
3

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

回答

7

但是,这一切设置可以做什么?

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

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

  • interpolate:正则表达式匹配的表达式应该被逐字插值
  • escape:正则表达式匹配应该是HTML逃脱
  • 后插入表情
  • evaluate:正则表达式匹配应该没有计算的表达式插入到结果字符串中。
  • variable:变量名来访问数据的属性,而是采用了with声明

,并有可能编译设置成一个模板?

是的。只需传递data的任何falsy值(nullundefined,false,...),该方法将返回一个模板函数,而不是立即渲染它。

+0

感谢您的详尽答复:) – Septagram

2

如果您查看注释过的源代码(我极力推荐它,那里有很多很好的解释),设置的三个选项是评估,插入和转义。下面是对templateSettings链接对象:

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

我不知道我完全理解有关编译设置成模板的问题,但你可以设置全局模板设置(这样你就不必通过它作为参数传递给模板方法,这样的:

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

很抱歉,如果说没有回答你的问题,但希望注释源代码会提供一些线索