如何从Meteor模板向Spacebars helper传递多个参数?

时间:2015-06-10 15:23:09

标签: meteor spacebars

我无法在那里找到一个可靠的例子。

$("#cancelForm").click(function() {
    bCancel = true;
    $("#myForm").submit();
});

如何在模板上调用它?

我想做类似的事情:

Template.registerHelper("itemLookup", function(sku, property){
  return Items.findOne({sku: sku})[property];
});

应输出

{{ itemLookup sku="i3_4030U" property="title" }}

1 个答案:

答案 0 :(得分:24)

不要命名模板助手参数,它们将以相同的顺序传递给助手函数:

{{ itemLookup "i3_4030U" "title" }}

编辑:

  

为什么我会在线查看他们命名模板的示例   辅助参数?

您可以在包含其他模板时为参数命名,并且您希望将其当前数据上下文设置为其他模板:

{{> childTemplate param1="A" param2="B"}}

在子模板标记中,您可以引用{{param1}}{{param2}}

Spacebars中提供的另一个Handlebars帮助器功能是您可以作为辅助参数的最后一个参数传递的“hash”可选参数值,您可以像这样使用它:

HTML

{{helper "A" "B" namedParam1="C" namedParam2="D"}}

JS

Template.registerHelper("helper", function(param1, param2, options){
  console.log("param1 :", param1);
  console.log("param2 :", param2);
  if(options && options.hash){
    console.log("namedParam1 :", options.hash.namedParam1);
    console.log("namedParam2 :", options.hash.namedParam2);
  }
});