39 votes

Comment puis-je mettre en minuscule un champ en utilisant Handlebars.js ?

Je veux faire quelque chose comme ceci :

{{user.name.toLowerCase()}}

mais je reçois cette erreur :

Erreur: Erreur d'analyse à la ligne X:
...tatus {{user.name.toLowerCase()}}">  
-----------------------^
En attente de 'ID', obtenu 'undefined'

76voto

Cyril N. Points 7683

Tel que simplement expliqué dans la doc :

Handlebars.registerHelper('toLowerCase', function(str) {
  return str.toLowerCase();
});

Et il suffit de l'utiliser comme ceci :

Par {{toLowerCase author}}

21voto

senbrow Points 568

Si vous essayez simplement d'afficher un texte en minuscules en HTML (peu importe s'il est généré par Handlebars ou non), vous pouvez utiliser du CSS et appliquer text-transform comme ceci :

.css-class-here {
    text-transform: lowercase;
}

15voto

Eric the Red Points 1418

J'ai créé le helper suivant, mais je suis curieux de savoir s'il existe une meilleure solution.

Handlebars.registerHelper('toLowerCase', function(value) {
    if(object) {
        return new Handlebars.SafeString(value.toLowerCase());
    } else {
        return '';
    }
});

9voto

yonib Points 101

Il ne fait pas de mal de vérifier également et de s'assurer que c'est une chaîne de caractères et si ce n'est pas le cas, ne rien renvoyer.

Handlebars.registerHelper('lowercase', function (str) {
  if(str && typeof str === "string") {
    return str.toLowerCase();
  }
  return '';
});

Utilisation :

// maintenant passons une chaîne de caractères ou une variable à notre assistant
{{lowercase 'MON NOM EST'}}

Sortie :

mon nom est

8voto

f1ames Points 1016

La réponse précédente de @Eric semble ne plus fonctionner maintenant, ma solution est très similaire, mais probablement la définition des helpers a changé un peu dans les nouvelles versions de Handlebars :

Handlebars.registerHelper('tolower', function(options) {
    return options.fn(this).toLowerCase();
});

et dans le modèle

`

A votre santé

`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X