28

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

<% if (value) { %>

<%= value %>

<% } %>

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

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

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

4

2 回答 2

23

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

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

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

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

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

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

这比

<% if (str.length > 100) { %>
<%= truncate(str) %>
<% } %>

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

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

于 2011-12-22T22:43:33.827 回答
0

现在有一个outputFunctionName可以使用的参数。根据文档

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

于 2020-12-05T16:55:31.733 回答