我发现下划线模板存在一个奇怪的问题。
<string
不会显示带有html编码<
的字符串,而是返回一个空字符串。但< string
正常工作。
请注意所需的空间。
jsfiddle:http://jsfiddle.net/BwHxv/281/
在小提琴中,尝试添加一个空格,这样你就会发现它可以正常工作。
有什么特别的原因吗?如果用户意外键入此字符,则不应将其变为空字符串。
答案 0 :(得分:3)
在jQuery的<%= ... %>
中使用Underscore的.html()
语法会将name
的值视为原始标记,并且对于浏览器,<string
似乎是不完整且无效的HTML标签
要对模板中的占位符进行编码,以便将其呈现为文本,您可以将<%=
更改为<%-
(http://jsfiddle.net/0cL4c1yx/):
var template = _.template( "<%- name %>", obj );
或者,您可以使用jQuery的.text()
将整个模板结果视为文本。
答案 1 :(得分:2)
HTML字符串<string
是&#34;字符串&#34;的开头。元件。这是胡说八道,因此您的浏览器无法显示任何内容。
HTML字符串< string
只是文字。它有效,因此您的浏览器会显示文字代表。
错误是您将纯文本传递给期望HTML的方法。最简单的解决方法是更改
.html
到
.text