24

我正在使用 EJS 和我正在构建的 Node.js Web 服务器。我看到许多 EJS 示例有时<%=在输出 HTML 或字符串时使用,而其他示例(有时在同一模板中)使用<%-.

我试图参考EJS文档和入门指南,但两者都没有提供有关<%-符号的信息。此外,我的谷歌搜索尝试没有产生任何有用的信息。谢谢!

4

5 回答 5

26

您可能在 Node 中使用的 EJS 版本与您在 Google 代码中看到的版本不同;在 Node 版本中,<%=转义进入缓冲区的 HTML,而<%-没有。资源

于 2012-06-14T00:45:41.450 回答
16

来自http://ejs.co/

<% 'Scriptlet' tag, for control-flow, no output
<%= Outputs the value into the template (HTML escaped)
<%- Outputs the unescaped value into the template
于 2017-08-01T17:39:26.690 回答
4

<%= *param* %>用于将数据从视图传输到控制器,反之亦然

while<%- %>是包含其他代码

因为我的项目是

在此处输入图像描述

于 2020-03-04T09:25:54.970 回答
2

如果将<%=呈现一些包含包含 HTML 代码的字符串的变量,它不会呈现该 HTML 代码,而是将其呈现为文本以避免跨站点脚本攻击。
使用减号 ( <%-) 可以避免这种情况,并真正呈现 HTML 代码。

于 2019-03-01T22:17:52.947 回答
0

1)选项一:ejs 文件正在导入一个名为“noob”的变量,该变量包含例如 req.body 值。 <p><%= noob %></p>

2)选项二:一个ejs文件导入一个名为“myPartial.ejs”的部分模板,它位于“partials”文件夹中。 <p><%- include("./partials/myPartial") %></p>

3)选项三:一个ejs文件正在使用javascript代码:

<p>
<% while (i < 10) { %>
  myVar += "The number is " + i;
  i++;
<% } %>
</p>
于 2021-07-07T12:58:53.110 回答