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

Dai*_*ail 23 ejs node.js express

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

<% if (value) { %>

<%= value %>

<% } %>
Run Code Online (Sandbox Code Playgroud)

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

<% if (value) { PRINT VALUE } %>
Run Code Online (Sandbox Code Playgroud)

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

Ada*_*dam 20

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

<?php if ($value) : ?>
    <?php echo $value; ?>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

但是,可能需要稍微好一点的解决方案

<%= (value) ? value : '' %>
Run Code Online (Sandbox Code Playgroud)

我说这假设条件可能偶尔会更复杂,即

<%= (str.length > 100) ? truncate(str) : str; %>
Run Code Online (Sandbox Code Playgroud)

哪个好多了

<% if (str.length > 100) { %>
<%= truncate(str) %>
<% } %>
Run Code Online (Sandbox Code Playgroud)

即使这是一个有点人为的例子.

根据你原来的问题,我很乐意被直接命令去做.

  • 甚至更短<%=值|| ''%> (10认同)