Estou usando a função de modelo underscore.js e fiz um modelo como este:
<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 você pode ver, eu tenho uma instrução if, porque todos os meus modelos não terão o parâmetro date. No entanto, essa maneira de fazer isso me dá um erro date is not defined
. Então, como posso fazer as declarações if dentro de um modelo?
:nth-child(even)
e:nth-child(odd)
não alterar seu modelo.Se você preferir uma declaração mais curta, se houver, poderá usar esta abreviação:
Significa exibir o ID se for válido e em branco se não for.
fonte
_.template
insere um;
no início de cada tag de código compilado. Assim, ele pode manipular tags quebrando entre instruções, mas não dentro de expressões. Compare;if(a){b;}else{c;}
com;a?b;:c;
.Dependendo da situação e / ou do seu estilo, você também pode usar a impressão dentro de suas
<%
%>
tags, pois isso permite a saída direta. Gostar:E para o trecho original com alguma concatenação:
fonte
Aqui está uma verificação if / else simples no underscore.js, se você precisar incluir uma verificação nula.
fonte
_.isEmpty()
Respondendo ao blackdivine acima (sobre como distribuir os resultados), você já deve ter encontrado sua resposta (se for o caso, que vergonha por não compartilhar!), Mas a maneira mais fácil de fazer isso é usando o operador de módulo. digamos, por exemplo, você está trabalhando em um loop for:
Dentro desse loop, basta verificar o valor do seu índice (i, no meu caso):
Isso verificará o restante do meu índice dividido por dois (alternando entre 1 e 0 para cada linha do índice).
fonte
Você pode tentar _.isUndefined
fonte
date
não existir. Você realmente precisatypeof
desse caso, embora seja ainda melhor usar uma variável nomeada quando estivermos digitando dados do modelo.A partir daqui :
"Você também pode se referir às propriedades do objeto de dados através desse objeto, em vez de acessá-las como variáveis." Isso significa que, no caso do OP, isso funcionará (com uma alteração significativamente menor do que outras possíveis soluções):
fonte
Para verificar valores nulos, você pode usar
_.isNull
da documentação oficialRetorna true se o valor do objeto for nulo.
fonte