我正在尝试使用 Meteor 创建一个自定义助手。以下是此处的文档:https://github.com/meteor/meteor/wiki/Handlebars 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 e.g. `window` and
// `undefined`)
if ((data || Handlebars._defaultThis) ===
(old_data || Handlebars._defaultThis))
return fn(data);
else
return Spark.setDataContext(data, fn(data));
}
请注意,我对流星和车把完全陌生。我想我会更高兴使用下划线,但流星的文档几乎完全浏览了下划线。我在定义辅助函数时做错了什么吗?似乎它没有看到第二个参数“bar”,而是将其解释为选项。 (注意:如果我 console.log(options) 它返回“未定义”)。
流星版本 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);
});
Have fun
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)