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

时间:2011-12-22 22:22:42

标签: node.js express ejs

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

<% if (value) { %>

<%= value %>

<% } %>

如果不打开其他括号,我可以做同样的事情吗?像:

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

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

2 个答案:

答案 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')。