Meteor是否支持嵌套助手(子表达式)?

时间:2014-05-15 11:13:56

标签: meteor handlebars.js spacebars

我会用这个:http://handlebarsjs.com/expressions.html#subexpressions

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

但流星给我一个错误......使用嵌套助手有一些解决方案或解决方法吗?

谢谢!

3 个答案:

答案 0 :(得分:7)

现在可以使用版本1.2

<p>
    Together we have
    {{pluralize (add myWidgetCount yourWidgetCount), "widget"}}
</p>

https://quip.com/RXFlAk9Rc2xI#dbfACAYxaJX

答案 1 :(得分:2)

嵌套助手:如果有一个位置参数后跟其他(位置或关键字参数),则使用调用约定的普通助手参数在其他参数上调用第一个参数。

将helperB传递给helperA

{{helperA helperB}}

使用参数x&#39;传递&#39; helperB to helperA

{{helperA helperB x}}

使用参数x = false&#39;传递&#39; helperB to helperA

{{helperA helperB x=false}}

空格键包含和阻止参数

https://github.com/meteor/meteor/blob/devel/packages/spacebars/README.md#inclusion-and-block-arguments

答案 2 :(得分:0)

我认为这部分文档:http://docs.meteor.com/#ui_registerhelper和此部分http://docs.meteor.com/#template_helpers应该回答您的问题。

此外,meteors模板语言被称为 spacebars ,虽然受到把手的启发,但它有一些不同之处,更多内容请阅读:https://github.com/meteor/meteor/blob/devel/packages/spacebars/README.md

这将给我们:

// template
<template name="_maybeDiv_wrapInDiv">
  <div>
    {{> UI.contentBlock}}
  </div>
</template>

<template name="_maybeDiv_noop">
  {{> UI.contentBlock}}
</template>

// client code
UI.registerHelper('maybeDiv', function () {
  var isBlock = this.valueOf();

  if (isBlock)
    return Template._maybeDiv_wrapInDiv;
  else
    return Template._maybeDiv_noop;
});

你可以像

一样使用它
{{#maybeDiv true}}
  contents
{{/maybeDiv}}