3

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

4

2 回答 2

7

但这就是所有设置都可以做到的吗?

是的,所有可能的都在文档settings中提到。您也可以阅读带注释的来源

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

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

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

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

于 2013-10-14T13:55:34.650 回答
2

如果您查看带注释的源(我强烈推荐它,那里有很多很好的解释),设置的三个选项是评估、插值和转义。这是 templateSettings 对象的链接:

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

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

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

抱歉,如果那没有回答您的问题,但希望带注释的来源会有所启发。

于 2013-10-14T12:51:53.847 回答