如何从 Meteor 模板将多个参数传递给空格键助手?

Posted

技术标签:

【中文标题】如何从 Meteor 模板将多个参数传递给空格键助手?【英文标题】:How to pass multiple arguments to Spacebars helper from Meteor template? 【发布时间】:2015-08-25 23:03:35 【问题描述】:

我找不到可靠的例子。

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

如何在模板上调用它?

我想做这样的事情:

 itemLookup sku="i3_4030U" property="title" 

应该输出

"Intel Core i3 4030U"

【问题讨论】:

【参考方案1】:

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

 itemLookup "i3_4030U" "title" 

编辑:

那为什么我会在网上看到他们命名模板的示例 辅助参数?

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

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

在子模板标记中,您将能够引用param1param2

空格键中可用的另一个 Handlebars 辅助功能是“哈希”可选参数值,您可以将其作为最后一个参数传递给辅助参数,您可以像这样使用它:

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);
  
);

【讨论】:

呸呸呸呸……谢谢。那为什么我会在网上看到他们命名模板帮助器参数的示例? 编辑了我的答案以涵盖空格键中的命名参数用例。 谢谢!这个简洁的摘要正是我想要的! @fuzzybabybunny :不要混合使用模板包含语法 > childTemplate 和辅助语法 helper,因为它们不是同一个东西。您假设您不需要引用解析为模板助手的参数值是正确的。 @Aaron :您可以在帮助程序调用中混合命名和未命名参数(请参阅我的示例),但是在包含它时您必须命名传递给子模板的每个参数,请注意,使用此功能将完全废弃以前的数据上下文并用您提供的参数替换它。

以上是关于如何从 Meteor 模板将多个参数传递给空格键助手?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用从views.py发送的变量将几个参数传递给url模板标签

如何将三个或多个参数传递给自定义模板标签过滤器 django?

将带有空格的路径作为参数传递给 bat 文件

Django将多个参数传递给If语句中的自定义模板过滤器

拥有 X 类,如何将 X 作为模板参数传递给自身?

如何将数组作为参数传递给 Nexus?如何使用 Prisma 从这个数组创建多个对象?