Javascript 将数字传递到handlebar.template.foo(bar)中
我有一个预编译的Handlebar模板,我想将一个包含数字的变量传递到handlebar.template.foo(bar)中。所以它看起来像handlebar.template.foo(bar,1) 然后我希望能够访问该号码,以便将其传递给我的助手。所以我想这样做Javascript 将数字传递到handlebar.template.foo(bar)中,javascript,templates,mustache,handlebars.js,Javascript,Templates,Mustache,Handlebars.js,我有一个预编译的Handlebar模板,我想将一个包含数字的变量传递到handlebar.template.foo(bar)中。所以它看起来像handlebar.template.foo(bar,1) 然后我希望能够访问该号码,以便将其传递给我的助手。所以我想这样做 {{myHelper bar num}} {{something}} {{myHelper}} 我已经设置好了助手来接收数字,如果我调用{{myHelper bar 1}},它就会接收,但是它会将数字从原始javascri
{{myHelper bar num}}
{{something}}
{{myHelper}}
我已经设置好了助手来接收数字,如果我调用{{myHelper bar 1}},它就会接收,但是它会将数字从原始javascript传递到我遇到问题的变量'num'
这是我的助手:
Handlebars.registerHelper('myHelper', function(bar, num){
var ret = ""
for(var i=0; i < bar.length; i++){
if(bar[i].id == num)
ret = ret + bar[i]
}
return ret;
});
handlebar.registerHelper('myHelper',函数(条,数){
var ret=“”
对于(变量i=0;i
如果你能让我知道,如果这是所有可能的第一,其次是如何做到这一点
提前谢谢 我不能完全确定你的问题是什么。但据我所知,您正在尝试创建一个块辅助对象,如内置的“each” 如果是这样的话,你的用法是错误的。块帮助程序需要以
#
开头,并以/
结尾。所以你的助手会像这样被使用
{{#myHelper items num}}
{{something}}
{{/myHelper}}
如果要在块辅助对象内动态查找特性,则需要将上下文对象传递给options参数内的函数。您的助手将看起来像
Handlebars.registerHelper('myHelper', function(items, num, options){
var ret = ""
for(var i=0; i < items.length; i++){
if(items[i].id === num) {
ret = ret + options.fn(items[i]);
}
}
return ret;
});
您可以在尝试此帮助程序,看看这是否是您所需要的。您可以添加帮助程序代码吗?@blessenm我已经添加了它。完美。要实现它需要一些修改,但这绝对是正确的答案。谢谢
{
items: [{id: 1, something:'First Item'},
{id: 2, something:'Second Item'},
{id: 3, something:'Third Item'}
],
num: 3
}