2012-04-27 133 views
5

我有以下代码(我读temp.ejs文件,获取内容ejsHtml为字符串):的NodeJS渲染EJS模板

var html = EJS.render(ejsHtml, { A: '<div>smth</div>' }); 

而且在temp.ejs:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
     <%= A %> 
</body> 
</html> 

输出:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
     &lt;div&gt; smth &lt;/div&gt; 
</body> 
</html> 

请告诉我怎么去Html和不是

回答

19

对于输出逃脱 HTML,您执行以下操作:

<%= code %> 

要输出转义 HTML,您可以使用下面的

<%- code %> 
+0

非常感谢tehlulz :) – karaxuna 2012-04-28 08:16:48

+0

这似乎并不奏效。我正在使用can.js – Adgezaza 2012-11-20 18:24:43

+0

与我合作很好,woopidoo。 – kaore 2014-07-23 10:46:32

1

我用下划线来帮助我。只有<%=或​​3210没有工作。

<%- _.unescape(data.textWithHtml) %> 
+0

这也适用于partials。在我的具体情况中,我使用了[ejs-mate](https://github.com/JacksonTian/ejs-mate) – iwatakeshi 2015-10-12 00:28:54