Je veux faire quelque chose comme ça:
{{user.name.toLowerCase()}}
mais je reçois cette erreur:
Error: Parse error on line X:
...tatus {{user.name.toLowerCase()}}">
-----------------------^
Expecting 'ID', got 'undefined'
J'ai créé l'aide suivante, 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 '';
}
});
Comme expliqué simplement dans le doc :
Handlebars.registerHelper('toLowerCase', function(str) {
return str.toLowerCase();
});
Et utilisez-le comme ceci:
<h1>By {{toLowerCase author}}</h1>
Si vous essayez simplement d'afficher du texte en minuscules en HTML (qu'il soit ou non généré par le guidon), vous pouvez utiliser CSS et appliquer text-transform comme ceci:
.css-class-here {
text-transform: lowercase;
}
La réponse précédente de @Eric ne semble pas fonctionner maintenant, ma solution est très similaire, mais la définition des assistants a probablement changé un peu dans les nouvelles versions de guidons:
Handlebars.registerHelper('tolower', function(options) {
return options.fn(this).toLowerCase();
});
et dans le modèle
<img src="/media/images/modules/{{#tolower}}{{name}}{{/tolower}}.png"...
À votre santé
Cela ne fait pas de mal de vérifier et de s'assurer qu'il s'agit bien d'une chaîne et sinon de ne rien retourner.
Handlebars.registerHelper('lowercase', function (str) {
if(str && typeof str === "string") {
return str.toLowerCase();
}
return '';
});
Utilisation:
// now let's pass a string or variable to our helper
{{lowercase 'MY NAME IS'}}
Production :
my name is