我试图了解下划线模板方法的标记类型之间的区别。
具体来说,除了 HTML 转义之外,我试图找出下划线 <%- %> 标记和 <%= %> 之间的区别。这两种类型之间还有其他区别吗?
来自下划线的文档:
如果您希望插入一个值,并使其进行 HTML 转义,请使用 <%- ... %>
在这种情况下,插值是什么意思?
我试图了解下划线模板方法的标记类型之间的区别。
具体来说,除了 HTML 转义之外,我试图找出下划线 <%- %> 标记和 <%= %> 之间的区别。这两种类型之间还有其他区别吗?
来自下划线的文档:
如果您希望插入一个值,并使其进行 HTML 转义,请使用 <%- ... %>
在这种情况下,插值是什么意思?
这意味着评估和填充..
假设你有
让我们说在你转换后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>
因此,如果用户想要转义,首先评估是否有任何字符,然后填充它
下划线将更改您的 <% %> 声明中的参数值,例如 <%-firstName %> 用于您传递给模板的 JSON 的属性 firstname 的值。这意味着将变量声明替换为实际值。- = 的不同之处在于,如果您希望这个值被 HTML 转义。
interpolate 意味着评估一个 javascript 表达式并将结果值放在模板数据中。例如:
_.template('Hello, <%- name %>', {name: 'Tony'})
将返回Hello, Tony
。这是插值,与评估相反,您可以在其中使用控制流表达式或其他表达式,其目的不仅仅是计算将成为模板输出字符串一部分的值。