如何使用 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 %>
这可能吗?如何打印变量?
【问题讨论】:
你为什么不直接使用<%= value %>
?
因为例如,我想做类似 之类的操作,如果满足此条件,请选中复选框或类似内容。跨度>
【参考方案1】:
我很惊讶地发现你显然不能这样做,就像在 php 中一样:
<?php if ($value) : ?>
<?php echo $value; ?>
<?php endif; ?>
然而,一个更好的解决方案可能是这样做
<%= (value) ? value : '' %>
我这样说是假设条件有时会更复杂,即
<%= (str.length > 100) ? truncate(str) : str; %>
比
好很多<% if (str.length > 100) %>
<%= truncate(str) %>
<% %>
即使这是一个稍微做作的例子。
根据您最初的问题,我很乐意看到执行此操作的直接命令。
【讨论】:
甚至更短 它只是<%=' '%>
,你可以输入你的密钥,它会打印密钥的值,或者你可以把一个字符串放在引号中,它会打印出来。【参考方案2】:
现在您可以使用outputFunctionName
参数。根据documentation:
outputFunctionName
设置为字符串(例如,'echo' 或 'print'),以便函数在 scriptlet 标记内打印输出。
【讨论】:
以上是关于如何使用 EJS 模板引擎直接打印变量?的主要内容,如果未能解决你的问题,请参考以下文章