我正在尝试理解下划线模板方法的标记类型之间的区别。
具体来说,我试图找出下划线之间的区别<% - %>标记和<%=%>除了HTML转义。这两种类型之间还有其他差异吗?
来自下划线的文档:
如果您希望插值并将其转换为HTML,请使用<% - ...%>
插值在这种情况下意味着什么?
答案 0 :(得分:4)
这意味着评估和填充..
让我们说你有
让我们说转换model attributes to JSON
后这是对象
{
title : 'Hello World',
escapeTitle : '<Hello World >'
};
如果你这样做
<%= {{title}} %> // Displayed as -- Hello World
<%= {{escapedTitle}} %> // Displayed as -- <Hello World>
但是如果你使用这个
<%- {{escapedTitle}} %> // Displayed as -- <Hello World>
首先评估是否有任何字符,如果用户想要转义然后填充它
答案 1 :(得分:2)
下划线会更改&lt; %%&gt;内的参数值声明例如&lt;% - firstName%&gt;获取传递给模板的JSON的属性firstname的值。 它意味着替换实际值的变量声明。 - =的差异只是如果你想要这个值被HTML scaped。
答案 2 :(得分:0)
插值意味着评估javascript表达式并将结果值放在模板数据中。例如:
_.template('Hello, <%- name %>', {name: 'Tony'})
将返回Hello, Tony
。这是插值,而不是评估,在这里您可以使用控制流或其他表达式的表达式,其目的不仅仅是计算将成为模板输出字符串一部分的值。