Я хочу сделать что-то вроде этого:
{{user.name.toLowerCase()}}
но я получаю эту ошибку:
Error: Parse error on line X:
...tatus {{user.name.toLowerCase()}}">
-----------------------^
Expecting 'ID', got 'undefined'
Я хочу сделать что-то вроде этого:
{{user.name.toLowerCase()}}
но я получаю эту ошибку:
Error: Parse error on line X:
...tatus {{user.name.toLowerCase()}}">
-----------------------^
Expecting 'ID', got 'undefined'
Я создал следующий помощник, но мне любопытно, есть ли там лучшее решение.
Handlebars.registerHelper('toLowerCase', function(value) {
if(object) {
return new Handlebars.SafeString(value.toLowerCase());
} else {
return '';
}
});
Как просто объяснено в doc:
Handlebars.registerHelper('toLowerCase', function(str) {
return str.toLowerCase();
});
И просто используйте его вот так:
<h1>By {{toLowerCase author}}</h1>
Если вы просто пытаетесь отобразить какой-либо текст в нижней части HTML (независимо от того, генерируется ли он с помощью дескрипторов), вы можете использовать CSS и применять text-transform вот так:
.css-class-here {
text-transform: lowercase;
}
Предыдущий ответ от @Eric, похоже, сейчас не работает, мое решение очень похоже, но, вероятно, определение помощников немного изменилось в новых версиях рулей:
Handlebars.registerHelper('tolower', function(options) {
return options.fn(this).toLowerCase();
});
и в шаблоне
<img src="/media/images/modules/{{#tolower}}{{name}}{{/tolower}}.png"...
Приветствия
Не мешает также проверить и убедиться, что это строка и если ничего не вернуть.
Handlebars.registerHelper('lowercase', function (str) {
if(str && typeof str === "string") {
return str.toLowerCase();
}
return '';
});
Использование:
// now let pass a string or variable to our helper
{{lowercase 'MY NAME IS'}}
Выход:
my name is