Handlebarsjs vérifier si une chaîne est égale à une valeur
Est-il possible dans le Guidon pour vérifier si une chaîne est égale à une autre valeur, sans vous inscrire une aide? Je n'arrive pas à trouver quelque chose de pertinent à ce sujet dans le Guidon de référence.
Par exemple:
{{#if sampleString == "This is a string"}}
...do something
{{/if}}
OriginalL'auteur colmulhall | 2015-12-13
Vous devez vous connecter pour publier un commentaire.
Il semble que vous ne pouvez pas le faire "directement"
Essayez d'utiliser helper, pourquoi pas?
S'inscrire aide dans votre code javascript:
Utiliser dans le modèle:
Plus de détails ici:
Opérateur logique dans un handlebars.js {{#if}} conditionnel
UPD:
D'une autre manière:
permet de supposer, vos données est:
Ensuite (à l'aide de jQuery):
Une utilisation modèle:
OriginalL'auteur Mihail
Je voudrais juste utiliser les helpers comme ceci:
Puis dans votre code:
OriginalL'auteur Pablo Varando
La réponse précédente avec match ne fonctionne pas pour moi, j'obtiens une erreur sur le si déclaration (quelque chose comme "ne doit avoir qu'un seul argument').
Cependant, je viens de trouver la solution ici sans avoir à écrire de plus helper:
OriginalL'auteur Kerhael
Vient de ce post à partir d'une recherche sur google sur la façon de vérifier si une chaîne est égale à une autre chaîne.
- Je utiliser HandlebarsJS en NodeJS côté serveur, mais j'ai aussi utiliser les mêmes fichiers de modèle sur la face avant à l'aide de la version du navigateur de HandlebarsJS pour l'analyser. Cela veut dire que si je voulais une personnalisé helper, je devais le définir en 2 endroits distincts, ou de lui attribuer une fonction à l'objet en question - trop d'effort!!
Ce que les gens oublient, c'est que certains objets ont hériter de fonctions qui peuvent être utilisées dans la moustache d'un modèle. Dans le cas d'une chaîne de caractères:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
Nous pouvons utiliser cette méthode pour retourner un tableau de correspondances, ou
null
si aucune correspondance n'a été trouvé. C'est parfait, parce qu'en regardant la HandlebarsJS documentation http://handlebarsjs.com/builtin_helpers.htmlDonc...
Mise à JOUR:
Après avoir testé sur tous les navigateurs, cela ne fonctionne pas sur Firefox. HandlebarsJS passe des autres arguments d'un appel de fonction, ce qui signifie que lors de la Chaîne.le prototype.match est appelé, le deuxième argument (c'est à dire l'expression des drapeaux pour le match de l'appel de fonction conformément à la documentation ci-dessus) semble être passée. Firefox voit cela comme un déconseillées utilisation de la Chaîne.le prototype.match, et ainsi de pauses.
Une solution de contournement consiste à déclarer un nouveau prototype fonctionnel pour la Chaîne JS objet, et de l'utiliser à la place:
Veiller à ce code JS est inclus avant vous exécutez votre Guidon.compiler() de la fonction, puis dans votre modèle...
OriginalL'auteur Jon
Node.js ajouter ceci dans le server.js
OriginalL'auteur user11258971
Un cas commun pour une solution simple, ré-utilisable fonction d'assistance est à l'origine d'un retour de chaîne1 si les valeurs sont égales et string2 si ils ne le sont pas.
Exemple:
Helper (appelons-le "ifEqual" et envoyer des 4 paramètres):
L'Utilisation Du Modèle:
Pour cet exemple, supposons que le modèle reçoit une "transaction" de l'objet avec un "transactionType" la propriété:
{ transactionType: "expense", description: "Copies" }
Disons que notre modèle a un
<select>
pour le Type d'Opération, avec divers<option>s
comme indiqué. Nous voulons utiliser Guidon de pré-sélectionner l'option qui coïncide avec la valeur de transactionType.Notre nouveau
{{ ifEqual }}
helper est utilisé pour insérer des "sélectionnés" pour le<option>
avec la valeur correspondante de la "dépense".OriginalL'auteur Jeff Matthews
Guidon a un opérateur conditionnel appelé "l'égalité" qui prend deux paramètres:
1.La variable
2.ce que votre vérifier si la variable contient.
Pour des exemples, afin de vérifier si "status" contient "Temps Plein":
Même question que madprops... ce serait une incroyable solution si cela a fonctionné
Ce code avez-vous utilisé? Cela a fonctionné pour moi. Pouvez-vous revenir sur votre question?
try {{#égal statut "à Plein Temps"}}
C'est un mensonge! Soit il a été supprimé de Guidon à un certain point, dans une version ultérieure, ou la personne qui a répondu déjà eu un helper personnalisé installé sur leur projet intitulé "l'égalité" et ils ne s'en est pas rendu compte.
OriginalL'auteur Mekanic
Dans le Guidon, les parenthèses sont utilisées pour invoquer le premier élément de la liste en fonction, en utilisant (facultatif) les éléments suivants en tant que paramètres. Ainsi, la syntaxe de Braise PEUT être utilisé sans Braise, à condition que vous pouvez définir le contexte vous-même. Par exemple:
Une fois que vous faites cela, vous pouvez utiliser le modèle {{#if}} et {{#sauf}} bloquer les opérations:
Être prudent de commutation de contextes avec {{avec}} ou lors de l'utilisation de inline partiels. Vous pouvez perdre la trace de votre défini "eq" de la fonction. La garantie de la façon de travailler, indépendamment des contextes nouveaux:
OriginalL'auteur Joel Kozikowski
Utilisation guidon-aides, qui fournit
eq
helperOriginalL'auteur Vic Seedoubleyew
Essayer:
{{#est le point.statut "terminé"}}
...
{{/}}
OriginalL'auteur user2662680
Le Mandrill service de messagerie prend en charge le Guidon et ici, il est possible d'utiliser "backticks" pour évaluer une expression logique dans un #si le bloc:
Je ne sais pas si ce possible en général, mais vous devriez l'essayer.
Il fonctionne très bien pour moi.
C'est bon à savoir. Personnellement, je ne l'ai essayé sur Mandrill, où il fonctionne très bien.
OriginalL'auteur pberggreen