J'utilise la fonction de modèle underscore.js et j'ai créé un modèle comme celui-ci:
<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>
Comme vous pouvez le voir, j'ai une instruction if car tous mes modèles n'auront pas le paramètre date. Cependant, cette façon de procéder me donne une erreur date is not defined
. Alors, comment puis-je faire des instructions dans un modèle?
:nth-child(even)
et:nth-child(odd)
non changer votre modèle.Si vous préférez une instruction if if plus courte, vous pouvez utiliser ce raccourci:
Cela signifie afficher l'id si est valide et vide s'il ne l'était pas.
la source
_.template
insère un;
au début de chaque balise de code compilé. Ainsi, il peut gérer les balises séparant les instructions, mais pas à l'intérieur des expressions. Comparez;if(a){b;}else{c;}
avec;a?b;:c;
.Selon la situation et / ou votre style, vous pouvez également utiliser l' impression à l' intérieur de vos
<%
%>
tags, car cela permet une sortie directe. Comme:Et pour l'extrait d'origine avec une concaténation:
la source
Voici une simple vérification if / else dans underscore.js, si vous devez inclure une vérification nulle.
la source
_.isEmpty()
En répondant à blackdivine ci-dessus (sur la façon de répartir ses résultats), vous avez peut-être déjà trouvé votre réponse (si c'est le cas, honte à vous de ne pas partager!), Mais la façon la plus simple de le faire est d'utiliser l'opérateur de module. disons, par exemple, que vous travaillez dans une boucle for:
Dans cette boucle, vérifiez simplement la valeur de votre index (i, dans mon cas):
Cela vérifiera le reste de mon index divisé par deux (basculer entre 1 et 0 pour chaque ligne d'index).
la source
Vous pouvez essayer _.isUndefined
la source
date
n'existe pas du tout. Vous avez vraiment besoin detypeof
dans ce cas, bien qu'il serait encore mieux d'utiliser une variable nommée lorsque nous utilisons des données de modèle de type canard.D' ici :
"Vous pouvez également vous référer aux propriétés de l'objet de données via cet objet, au lieu d'y accéder en tant que variables." Cela signifie que pour le cas de l'OP, cela fonctionnera (avec un changement beaucoup plus petit que les autres solutions possibles):
la source
Pour vérifier les valeurs nulles que vous pouvez utiliser à
_.isNull
partir de la documentation officielleRenvoie vrai si la valeur de l'objet est nulle.
la source