渲染ejs模板

7

我有以下的代码在nodejs中(我读取temp.ejs文件并将内容作为字符串ejsHtml获取):

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,而不是其他内容

2个回答

20

要输出转义的HTML,你需要执行以下操作:

<%= code %>

要输出 未转义的 html,你需要使用以下方法

<%- code %>

2
我使用了underscore来帮助我。只有<%=<%-不能正常工作。
<%- _.unescape( data.textWithHtml ) %>

这也适用于partials。在我的特定情况下,我使用了[ejs-mate](https://github.com/JacksonTian/ejs-mate)。 - iwatakeshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接