2011-12-22 31 views
21

Estoy usando Node.js con Express web framework (y el motor de plantillas de EJS). Cuando tengo que mostrar una variable que hago algo así como:¿Cómo imprimir una variable directamente usando el motor de plantillas EJS?

<% if (value) { %> 

<%= value %> 

<% } %> 

¿Puedo hacer lo mismo sin otros soportes abiertos? Me gusta:

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

¿Esto es posible? Cómo imprimir la variable?

+0

¿Por qué simplemente no usarías '<%= value %>'? –

+0

porque, por ejemplo, me gustaría hacer algo como <% if (value) {PRINT "foobar"}%>, si se cumple esta condición, marque una casilla de verificación o algo similar. – glasspill

Respuesta

16

Estoy sorprendido de encontrar que apparrently no puede hacerlo, como en PHP:

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

Sin embargo una solución ligeramente mejor será para

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

Digo esto suponiendo que la condición puede ocasionalmente ser más complejo, es decir,

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

que es mucho más agradable que

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

incluso si se trata de un ejemplo ligeramente artificial.

Me encantaría que se muestre un comando directo para hacerlo, según su pregunta original.

+9

O incluso más corto <% = valor || ''%> – Zugwalt

Cuestiones relacionadas