我需要构建一个自定义的Block Helper,名为" multiple" 在对象存在时用作#each,当对象不存在时用作#unless。
模板就像这样
{{#multiple Data.Products}}
<input type="text" placeholder="Insert Product" value={{Name}}>
{{/multiple}}
因此,当我们有一些产品时,它会呈现一组输入,其值是产品名称,非常适合编辑事项。
相反,如果没有可用的产品,我会在一个空的输入处显示我可以创建新产品。
我的尝试就是这个:
Handlebars.registerHelper('multiple', function (context, options) {
var j;
var ret = "";
if (context) {
j = context.length;
for (var i = 0; i < j; i++) {
ret = ret + options.fn(context[i]);
}
} else {
ret = ret + options.inverse(this); //NOT WORKING
}
return ret;
});
答案 0 :(得分:0)
这很好用;)
Handlebars.registerHelper('multiple', function (context, options) {
if (options.hash.value === context) {
return options.fn(this)
} else {
var j;
var ret = "";
j = context.length;
for (var i = 0; i < j; i++) {
ret = ret + options.fn(context[i]);
}
return ret;
}
});