把手:在打电话给另一个助手时打电话给帮手?

时间:2017-11-15 15:47:18

标签: handlebars.js

所以我有2个助手,#hex在单独使用时可正常工作,#rgb在直接传递颜色时也能正常工作。但是,理想情况下,我希望在调用#hex帮助程序时使用我的#rgb帮助程序,但我没有太多运气。这是我到目前为止所拥有的。

帮助者中的助手 - 没有按预期工作:

{{#rgb {{#hex color}}{{/hex}} -0.25}}

对上述内容的预期示例:

{{#rgb #abc123 -0.25}}

这是否可以在车把中实现,或者如果我写了一个包含我的#rgb助手和#hex助手的新助手会更容易吗?

2 个答案:

答案 0 :(得分:1)

您可以使用括号而不是大括号来执行此操作:

{{helper1 (helper2 var1) var2}}

示例:

// dummy helpers
Handlebars.registerHelper('rgb', function(color, opacity) {
  return color + ' ' + opacity;
});
Handlebars.registerHelper('hex', function(color) {
  return color + 'hexified';
});

// now in template
var template = '{{rgb (hex color) -0.25}}';
Handlebars.compile(template)({color: 'green'});
//Outputs "greenhexified -0.25"

Subexpressions docs

答案 1 :(得分:0)

{{outer-helper (inner-helper 'abc') 'def'}}