Estoy usando la función de plantilla underscore.js y he hecho una plantilla como esta:
<script type="text/template" id="gridItem">
<div class="griditem <%= gridType %> <%= gridSize %>">
<img src="<%= image %>" />
<div class="content">
<span class="subheading"><%= categoryName %></span>
<% if (date) { %><span class="date"><%= date %></span><% } %>
<h2><%= title %></h2>
</div>
</div>
</script>
Como puede ver, tengo una declaración if allí porque todos mis modelos no tendrán el parámetro de fecha. Sin embargo, esta forma de hacerlo me da un error date is not defined
. Entonces, ¿cómo puedo hacer si las declaraciones dentro de una plantilla?
:nth-child(even)
y los:nth-child(odd)
selectores CSS, no cambie su plantilla.Si prefiere una declaración if if else más corta, puede usar esta abreviatura:
Significa mostrar la identificación si es válida y en blanco si no lo fue.
fuente
_.template
inserta un;
al comienzo de cada etiqueta de código compilada. Por lo tanto, puede manejar etiquetas que se rompen entre declaraciones, pero no dentro de expresiones. Comparar;if(a){b;}else{c;}
a;a?b;:c;
.Dependiendo de la situación y / o su estilo, es posible que también desee usar imprimir dentro de sus
<%
%>
etiquetas, ya que permite la salida directa. Me gusta:Y para el fragmento original con cierta concatenación:
fuente
Aquí hay una simple comprobación if / else en underscore.js, si necesita incluir una comprobación nula.
fuente
_.isEmpty()
Respondiendo a blackdivine arriba (sobre cómo dividir los resultados), es posible que ya haya encontrado su respuesta (si es así, ¡qué vergüenza por no compartir!), Pero la forma más fácil de hacerlo es mediante el uso del operador de módulo. digamos, por ejemplo, que estás trabajando en un bucle for:
Dentro de ese ciclo, simplemente verifique el valor de su índice (i, en mi caso):
Hacer esto verificará el resto de mi índice dividido entre dos (alternando entre 1 y 0 para cada fila de índice).
fuente
Puedes probar _.es Indefinido
fuente
date
no existe en absoluto. Realmente necesita eltypeof
en este caso, aunque sería aún mejor usar una variable con nombre cuando estamos escribiendo datos de plantilla de pato.Desde aquí :
"También puede referirse a las propiedades del objeto de datos a través de ese objeto, en lugar de acceder a ellas como variables". Lo que significa que para el caso de OP esto funcionará (con un cambio significativamente menor que otras soluciones posibles):
fuente
Para verificar los valores nulos que puede usar
_.isNull
de la documentación oficialDevuelve verdadero si el valor del objeto es nulo.
fuente