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

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

<% if (value) { %>

<%= value %>

<% } %>

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

<% if (value) { PRINT VALUE } %>

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

【问题讨论】:

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

标签: node.js express ejs


【解决方案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 标记内打印输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-28
    • 2022-12-14
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    相关资源
    最近更新 更多