En regardant ce en utilisant Blaze guide, il semble que Blaze supporte {{#if}}
et {{else}}
instructions, mais je n'ai pas vu d'exemples d'instructions if-else. Est-ce pris en charge dans Blaze? Ou dois-je faire un bloc if supplémentaire à l'intérieur du bloc else, qui peut devenir laid.
J'ai essayé {{else if}}
, mais cela a donné une erreur.
{{#if en}}{{text.en}}{{else if tc}}{{text.tc}}{{/if}}
Les barres d'espace utilisent la même structure de flux de contrôle que guidons donc la réponse est la même que celle-ci . Dans ton cas:
{{#if en}}
{{text.en}}
{{else}}
{{#if tc}}
{{text.tc}}
{{/if}}
{{/if}}
Note latérale - l'une des bonnes choses à propos de jade est qu'il prend en charge else if
.
Parfois, une meilleure alternative consiste à déplacer la logique dans un assistant comme celui-ci:
Template.myTemplate.helpers({
textValue: function() {
if (this.en) {
return this.text.tc;
} else if (this.tc) {
return this.text.tc;
}
}
});
<template name="myTemplate">
<p>{{textValue}}</p>
</template>
Dans le prolongement de l'excellente réponse de @David Wheldon, il convient également de noter que vous pouvez transmettre des paramètres à vos fonctions d'assistance JavaScript à partir de votre modèle Blaze.
Ainsi, par exemple, le code ci-dessous rend sélectivement les options d'une liste de sélection en appelant la méthode d'assistance avec la ligne isSelected region customerCompany
:
{{#if isSelected region customerCompany}}
<option value={{region._id}} selected>{{region.name}}</option>
{{else}}
<option value={{region._id}}>{{region.name}}</option>
{{/if}}
puis dans le fichier js:
isSelected: function (region, customer) {
return customer.salesRegionId === region._id;
},
Cette approche consistant à transmettre vos variables à vos assistants est généralement recommandée pour éviter la confusion qui peut survenir avec la modification de la signification du mot clé this
lors de l'utilisation de modèles.
La version actuelle de Blaze prend en charge else if - voir ci-dessous pour un exemple de format et une référence à la résolution du problème github.
{{#if isUserProfile}}
<h3>User Profile</h3>
{{else if isLawyerProfile}}
<h3>Lawyer Profile</h3>
{{else}}
<h3>Test</h3>
{{/if}}
Lien de référence: GitHub Else If Issue Resoltion