我正在使用带有Express Web框架的Node.js(以及EJS模板引擎)。 当我必须打印变量时,我会执行以下操作:
<% if (value) { %>
<%= value %>
<% } %>
如果不打开其他括号,我可以做同样的事情吗?像:
<% if (value) { PRINT VALUE } %>
这可能吗?如何打印变量?
答案 0 :(得分:20)
我很惊讶地发现你不能这样做,就像在PHP中一样:
<?php if ($value) : ?>
<?php echo $value; ?>
<?php endif; ?>
然而,稍微好一点的解决方案可能是
<%= (value) ? value : '' %>
我这样说是假设条件有时可能更复杂,即
<%= (str.length > 100) ? truncate(str) : str; %>
哪个比
好多了<% if (str.length > 100) { %>
<%= truncate(str) %>
<% } %>
即使是一个有点人为的例子。
根据你原来的问题,我很乐意被直接命令去做。
答案 1 :(得分:0)
现在有一个outputFunctionName
参数可以使用。根据{{3}}:
outputFunctionName
设置为用于在scriptlet标签内打印输出的函数的字符串(例如'echo'或'print')。