如何在meteor的助手中使用多个参数?

我正在尝试使用Meteor创build一个自定义帮助器。 继这里的文档: https : //github.com/meteor/meteor/wiki/Handlebars

我试图定义我的帮手如下:

Template.myTemplate.testHelper = function(foo, bar, options) { console.log(foo); console.log(bar); } 

我的模板看起来像:

 <template name="myTemplate"> {{#testHelper "value1" "value2"}} {{/testHelper}} </template> 

看我的控制台输出,我期望看到2行输出:

 value1 value2 

但是我的控制台看起来像:

 value1 function (data) { // don't create spurious annotations when data is same // as before (or when transitioning between eg `window` and // `undefined`) if ((data || Handlebars._defaultThis) === (old_data || Handlebars._defaultThis)) return fn(data); else return Spark.setDataContext(data, fn(data)); } 

请注意,我对meteor和把手是全新的。 我觉得用下划线会更快乐,但meteor浏览的文档几乎完全是下划线的。 我做错了定义我的帮助function? 看来它没有看到第二个参数“bar”,而是将其解释为选项。 (注意:如果我console.log(选项)它返回“未定义”)。

meteor版本0.4.0(8f4045c1b9)

你的逻辑很好,只需要对模板做一些修改

 <template name="myTemplate"> {{testHelper "value1" "value2"}} </template> 

请记住,testHelper函数仅在myTemplate模板中定义。

如果你想注册testHelper全球你需要做这样的事情

 Handlebars.registerHelper('testHelper', function(foo, bar){ console.log(foo); console.log(bar); }); 

玩的开心

除了

<template name="myTemplate"> {{testHelper "value1" "value2"}} </template>

而不是传递一个值作为parameter passing函数作为参数这是代码

 <template name="myTemplate"> {{ testHelper1 (testHelper2 "value2") }} </template> 

干杯!!!!!