【发布时间】:2015-02-14 17:08:29
【问题描述】:
为了避免为标签和文本组合构建相同的 html,我有一个 Handlebar 函数来为我生成 HTML。
例如我有这个
{{{labelSpan 'Input Type' inputType}}}
{{{labelSpan 'Formula' showFriendlyFormula formula }}}
还有车把功能
UI.registerHelper('labelSpan', function(label, value){
return '<p> <label>' + label + ':</label><br> <span>' + value + '</span></p>';
});
现在 inputType 很好,因为它是上下文的一部分。
然而,showFriendlyFormula 派生自另一个辅助方法,因为本质上我需要为此做一整套额外的事情
Template.create.helpers({
showFriendlyFormula: function(formula) {
return share.convertFormulaToAnotherInputField(formula);
}
});
显然,调用 {{{labelSpan 'Formula' showFriendlyFormula formula }}} 会失败,所以有没有办法让我传递到 labelSpan,showFriendlyFormula(formula) 的输出
【问题讨论】:
-
正如 sbking 回答的那样,您不能在空格键中执行此操作,但有一些解决方法。另一个是使用
{{#with showFriendlyFormula formula}},在这个块里面this会引用showFriendlyFormula的返回值。
标签: javascript meteor handlebars.js