3

我写了两个助手,分别i18n如下toLowerCase

/*
* Returns lowercase of a string
*/
Handlebars.registerHelper('toLowerCase', function(value) {
  if (value && typeof value === 'string') {
    return value.toLowerCase();
  } else {
    return '';
  }
});

我有一个字符串,它应该首先转换为小写,然后应该使用 i18n 助手进行本地化。这两个助手都可以正常工作/运行。

这些线路工作正常。(经测试)

{{toLowerCase status }}
{{i18n status}}

但我想要这样的东西。我试过这个:

{{i18n {{toLowerCase status }} }}

但这会在第 88 行将语法错误抛出为 Uncaught Error: Parse error:

..div>      {{ i18n  {{toLowerCase stat
----------------------^
Expecting 'CLOSE', 'CLOSE_UNESCAPED', 'STRING', 'INTEGER', 'BOOLEAN', 'ID', 'DATA', 'SEP', got 'OPEN' 

有什么建议么 ?

4

2 回答 2

3

Handlesbars现在支持子表达式,所以你可以这样做:

{{i18n (toLowerCase status) }}

(注意,那些是括号 (),而不是花括号{},用于内部助手)

于 2016-11-08T13:58:18.953 回答
1

您可以尝试使用https://github.com/mateusmaso/handlebars.nested(但请注意,它只允许一级嵌套)。据我所知,Handlebars 对此没有内置支持,尽管您可以使用我在评论中链接的问题中的一些解决方法。

于 2013-08-12T12:49:32.630 回答