我有这个函数调用,它会生成一个复选框
{{checkbox "checkbox_{{id}}" }}
但正如您可能已经猜到的那样,我得到的结果是
<input type="checkbox" name="checkbox_{{id}}" id="checkbox_{{id}}">
我正在寻找它来评估函数调用中的{{id}}。
答案 0 :(得分:2)
传入id
并让帮助者将其附加到name
和id
属性,并附上您想要的任何前缀。
<强>模板强>
{{{checkbox id}}}
<强>辅助强>
// Expression Helper
Handlebars.registerHelper('checkbox', function (id) {
return '<input type="checkbox" name="checkbox_' + id + '" id="checkbox_' + id + '">';
});
JS小提琴:http://jsfiddle.net/gfullam/390t5cnh/
<强>更新强> 值得注意的是,Handlebars不会评估小胡子里面的小胡子。但...
Handlebars提供对子表达式的支持,允许您使用 在一个小胡子中调用多个助手,并传入 内部帮助程序调用的结果作为外部帮助程序的参数。 Subexpressions由括号分隔。
{{{checkbox (myOtherHelper id)}}}
您还可以将多个参数传递给单个帮助程序:
<强>模板强>
{{{checkbox "checkbox_" id}}}
<强>辅助强>
// Expression Helper
Handlebars.registerHelper('checkbox', function (prefix, id) {
return '<input type="checkbox" name="' + prefix + id + '" id="' + prefix + id + '">';
});