如何在车把中使用多个帮手

时间:2013-08-12 12:30:14

标签: nested handlebars.js helpers

我写了两个帮助,即i18ntoLowerCase如下:

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

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

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

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

但我想要这样的事情。我试过这个:

{{i18n {{toLowerCase status }} }}

但是这会引发语法错误 未捕获错误:第88行上的解析错误:

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

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

Handlesbars现在支持 Subexpressions ,所以您可以这样做:

{{i18n (toLowerCase status) }}

(注意,那些是 parens (),而不是大括号{},对于内部帮助者来说)

答案 1 :(得分:1)

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