web-dev-qa-db-ja.com

EJSテンプレートエンジンを使用して変数を直接印刷するにはどうすればよいですか?

Express Webフレームワーク(およびEJSテンプレートエンジン)でNode.jsを使用しています。変数を出力する必要があるときは、次のようにします。

<% if (value) { %>

<%= value %>

<% } %>

他のブラケットを開かずに同じことを行うことはできますか?お気に入り:

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

これは可能ですか?変数を出力する方法は?

23
Dail

PHPのように、どうやらそれができないことに驚いています。

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

ただし、少し良い解決策は

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

私はこれを、条件が時々より複雑になる可能性があると仮定して言います。

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

これはよりもはるかに良いです

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

少し工夫された例でも。

あなたの最初の質問のように、私はそれをするための直接の命令を見せられたいです。

21
Adam