Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数字传递到handlebar.template.foo(bar)中_Javascript_Templates_Mustache_Handlebars.js - Fatal编程技术网

Javascript 将数字传递到handlebar.template.foo(bar)中

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

我有一个预编译的Handlebar模板,我想将一个包含数字的变量传递到handlebar.template.foo(bar)中。所以它看起来像handlebar.template.foo(bar,1)

然后我希望能够访问该号码,以便将其传递给我的助手。所以我想这样做

{{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
}