J'utilise Handlebars.js pour le rendu de vue côté client. Si Else fonctionne très bien mais j'ai rencontré un conditionnel à 3 voies qui nécessite ELSE IF:
Cela ne fonctionne pas:
{{#if FriendStatus.IsFriend }}
<div class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></div>
{{else if FriendStatus.FriendRequested}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></div>
{{else}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></div>
{{/if}}
Comment puis-je faire ELSE IF avec un guidon?
handlebars.js
reach4thelasers
la source
la source
Réponses:
Le guidon prend en charge les
{{else if}}
blocs à partir de 3.0.0.Guidon v3.0.0 ou supérieur:
Avant le guidon v3.0.0, cependant, vous devrez définir un assistant qui gère la logique de branchement ou imbriquer les
if
instructions manuellement:la source
else if
J'utilise généralement ce formulaire:
la source
{{/if}}{{/if}}{{/if}}{{/if}}{{/if}}
Le guidon prend désormais en charge à
{{else if}}
partir de 3.0.0. Par conséquent, votre code devrait maintenant fonctionner.Vous pouvez voir un exemple sous "conditionnelles" (légèrement révisé ici avec un ajout
{{else}}
:http://handlebarsjs.com/block_helpers.html
la source
{{else if}}
syntaxe.L'esprit du guidon est qu'il est "sans logique". Parfois, cela nous donne l'impression de nous battre avec, et parfois nous nous retrouvons avec une logique si / autre imbriquée laide. Vous pourriez écrire un assistant; beaucoup de gens augmentent le guidon avec un "meilleur" opérateur conditionnel ou pensent qu'il devrait faire partie du noyau . Je pense, cependant, qu'au lieu de cela,
vous voudrez peut-être organiser les choses dans votre modèle afin que vous puissiez avoir cela,
Assurez-vous simplement qu'un seul de ces indicateurs est vrai. Il y a de fortes chances que si vous utilisez cela
if/elsif/else
à votre avis, vous l'utilisez probablement ailleurs aussi, de sorte que ces variables pourraient ne pas devenir superflues.Gardez-le maigre.
la source
J'ai écrit cette aide simple:
C'est quelque chose comme le modèle de chaîne de responsabilité dans les guidons
Exemple:
Ce n'est pas autre chose, mais dans certains cas, cela peut vous aider)
la source
Assistants intégrés
Vous pouvez utiliser l'aide if pour effectuer un rendu conditionnel d'un bloc. Si son argument renvoie false, undefined, null, "", 0 ou [], Handlebars ne rendra pas le bloc.
modèle
Lorsque vous transmettez l'entrée suivante au modèle ci-dessus
la source
Bonjour, je n'ai qu'une modification de nom de classe MINOR, et jusqu'à présent, c'est ainsi que iv l'a divulguée. je pense que je dois passer des paramètres multi-piles à l'aide,
server.js
header.handlebars
la source