我制作了一个名为" $"的模板助手。在我的木偶装置中
templateHelpers:function(){
return jQuery.extend(this,{
'$':function (text){
return Handlebars.compile('{{'+text+'}}')(this);
}
});
},
这允许我这样做
{{$ collection.display}}
将解析collection.display,通常是名称,但可能是其他字段名称,如service_id,然后我的处理程序将解决该问题。 所以我有间接,比打字便宜
{{{{collection.display}}}}
一切都好。唯一的障碍是,当我把它放在{{#each items}}循环中时,
{{#each items}}
<option value="{{this.id}}">{{$ ../collection.display}} </option>
{{/each}}
它爆炸了
Error: Missing helper: "$"
请注意,当我在$ {$ any}}内部失败时,我在$之后放置的内容无关紧要,帮助器就不存在了。
答案 0 :(得分:1)
这可能是一个异步性问题。在应用处理程序之前,迭代器块的主体似乎正在编译。 无论如何,如果我只是去
Handlebars.registerHelper('$', function (text){
return Handlebars.compile('{{'+text+'}}')(this);
});
在我开始宣布任何木偶视图之前,它是有效的,所以不确定这是否算作牵线木偶,车把或我当中的错误。
这是Handlebar helper inside {{#each}}