如何在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>
干杯!!!!!