簡體   English   中英

如何使用Handlebars.js小寫字段?

[英]How do I lowercase a field using Handlebars.js?

我想做這樣的事情:

{{user.name.toLowerCase()}}

但我得到這個錯誤:

Error: Parse error on line X:
...tatus {{user.name.toLowerCase()}}">  
-----------------------^
Expecting 'ID', got 'undefined'

正如在文檔中簡單解釋的那樣:

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

只需像這樣使用它:

<h1>By {{toLowerCase author}}</h1>

如果你只是試圖在HTML中顯示一些小寫的文本(無論它是否由把手生成),你可以使用CSS並應用文本轉換,如下所示:

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

我創建了以下幫助器,但我很好奇是否有更好的解決方案。

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

來自@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's pass a string or variable to our helper
{{lowercase 'MY NAME IS'}}

輸出:

my name is

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM