如何使用 EJS 模板引擎直接打印变量?

Posted

技术标签:

【中文标题】如何使用 EJS 模板引擎直接打印变量?【英文标题】:How to print a variable directly using EJS template engine? 【发布时间】:2012-01-26 11:29:06 【问题描述】:

我正在使用带有 Express Web 框架(和 EJS 模板引擎)的 Node.js。 当我必须打印一个变量时,我会执行以下操作:

<% if (value)  %>

<%= value %>

<%  %>

我可以在不打开其他括号的情况下做同样的事情吗?喜欢:

<% if (value)  PRINT VALUE  %>

这可能吗?如何打印变量?

【问题讨论】:

你为什么不直接使用&lt;%= value %&gt; 因为例如,我想做类似 之类的操作,如果满足此条件,请选中复选框或类似内容。跨度> 【参考方案1】:

我很惊讶地发现你显然不能这样做,就像在 php 中一样:

<?php if ($value) : ?>
    <?php echo $value; ?>
<?php endif; ?>

然而,一个更好的解决方案可能是这样做

<%= (value) ? value : '' %>

我这样说是假设条件有时会更复杂,即

<%= (str.length > 100) ? truncate(str) : str; %>

好很多
<% if (str.length > 100)  %>
<%= truncate(str) %>
<%  %>

即使这是一个稍微做作的例子。

根据您最初的问题,我很乐意看到执行此操作的直接命令。

【讨论】:

甚至更短 它只是&lt;%=' '%&gt;,你可以输入你的密钥,它会打印密钥的值,或者你可以把一个字符串放在引号中,它会打印出来。【参考方案2】:

现在您可以使用outputFunctionName 参数。根据documentation:

outputFunctionName 设置为字符串(例如,'echo' 或 'print'),以便函数在 scriptlet 标记内打印输出。

【讨论】:

以上是关于如何使用 EJS 模板引擎直接打印变量?的主要内容,如果未能解决你的问题,请参考以下文章

EJS模板引擎

EJS 高效的 JavaScript 模板引擎

在 EJS 模板引擎中,如何“包含”页脚?

如何将数组从 js 打印到 ejs 模板?

如何使用 ejs 连接 html 属性中的字符串?

ejs模板引擎的使用