如何将多个参数从 Meteor 模板传递给 Spacebars 助手?
How to pass multiple arguments to Spacebars helper from Meteor template?
我没能找到可靠的例子。
Template.registerHelper("itemLookup", function(sku, property){
return Items.findOne({sku: sku})[property];
});
如何在模板上调用它?
我想做类似的事情:
{{ itemLookup sku="i3_4030U" property="title" }}
应该输出
"Intel Core i3 4030U"
不要命名模板助手参数,它们将以相同的顺序传递给您的助手函数:
{{ itemLookup "i3_4030U" "title" }}
编辑:
Why then do I see examples online where they are naming the template
helper parameters?
您可以在包含另一个模板时命名参数,并且您希望将其当前数据上下文设置为其他内容:
{{> 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);
}
});
我没能找到可靠的例子。
Template.registerHelper("itemLookup", function(sku, property){
return Items.findOne({sku: sku})[property];
});
如何在模板上调用它?
我想做类似的事情:
{{ itemLookup sku="i3_4030U" property="title" }}
应该输出
"Intel Core i3 4030U"
不要命名模板助手参数,它们将以相同的顺序传递给您的助手函数:
{{ itemLookup "i3_4030U" "title" }}
编辑:
Why then do I see examples online where they are naming the template helper parameters?
您可以在包含另一个模板时命名参数,并且您希望将其当前数据上下文设置为其他内容:
{{> 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);
}
});