【发布时间】:2014-07-03 19:17:27
【问题描述】:
我会用这个:http://handlebarsjs.com/expressions.html#subexpressions
{{outer-helper (inner-helper 'abc') 'def'}}
但是流星给我一个错误...有一些使用嵌套助手的解决方案或解决方法吗?
谢谢!
【问题讨论】:
标签: meteor handlebars.js spacebars
我会用这个:http://handlebarsjs.com/expressions.html#subexpressions
{{outer-helper (inner-helper 'abc') 'def'}}
但是流星给我一个错误...有一些使用嵌套助手的解决方案或解决方法吗?
谢谢!
【问题讨论】:
标签: meteor handlebars.js spacebars
我认为这部分文档:http://docs.meteor.com/#ui_registerhelper,这部分 http://docs.meteor.com/#template_helpers 应该回答您的问题。
此外,流星模板语言称为 spacebars,虽然受到 handlebars 的启发,但它有一些不同之处,更多内容请阅读此处: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}}
【讨论】:
{{#maybeDiv true}} contents {{/maybeDiv}} 用另一个助手替换内容,你有嵌套助手。
嵌套助手:如果有一个位置参数后跟其他(位置或关键字参数),则使用正常的助手参数调用约定在其他参数上调用第一个参数。
将 helperB 传递给 helperA
{{helperA helperB}}
将 'helperB with argument x' 传递给 helperA
{{helperA helperB x}}
将带有参数 x=false 的“helperB”传递给 helperA
{{helperA helperB x=false}}
空格键包含和块参数
【讨论】:
{{#outer-helper def}} {{inner-helper abc}} {{/outer-helper}}
<button type="submit" class="btn btn-primary "> {{#spinnerIf processing}}{{#if addMode}}Add{{else}}Edit{{/if}}{{/spinnerIf}} </button> 能回答你的问题吗?
现在 1.2 版可以实现这一点
<p>
Together we have
{{pluralize (add myWidgetCount yourWidgetCount), "widget"}}
</p>
【讨论】: