2012-04-27 223 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