如何使用多个参数与流星车把帮手?(How to use multiple parameters in

2019-07-31 20:52发布

我试图创建一个使用流星定制的帮手。 继到文档在这里: 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));
  } 

请注意,我是完全新的流星,并把手。 我想我会用下划线更幸福,但流星文档瞥了一眼,强调几乎完全。 我是不是做错了什么定义我的帮助功能? 看来,它没有看到第二个参数“栏”,而是解释,作为选项。 (注:如果我CONSOLE.LOG(选项),它会返回“未定义”)。

流星版本0.4.0(8f4045c1b9)

Answer 1:

你的逻辑是好的,只是做一些修改模板

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

记裸的testHelper功能在MyTemplate的模板只定义了。

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

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

玩得开心



Answer 2:

除了

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

而不是传递的值作为参数的传递函数作为参数下面是该代码

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

干杯!!!!!



文章来源: How to use multiple parameters in a handlebar helper with meteor?