我正在创建一个帮助器来输出 7 或 8 行 HTML 以清理我的模板(并遵守 DRY - 嘿,押韵 - wikka wikka)。
下面是一个调用 addOn 助手的例子
{{#each promotion.CampaignColors}}
{{{addOn . CampaignColorType.Code CampaignColorType.Name HexColor "some content" "a title"}}}
{{/each}}
现在,据我了解,上下文之后的所有内容都应该是一个称为选项的哈希。这是我的 addOn.js 的存根
define([
'handlebars',
'hbs!templates/addOn',
], function (Handlebars, AddOnTemplate) {
function addOn(context, options) {
var data = {};
var compiledTemplate = AddOnTemplate(data);
console.log(compiledTemplate);
return compiledTemplate;
}
Handlebars.registerHelper('addOn', addOn);
return new Handlebars.SafeString(addOn);
});
但是,选项仅设置为我传递的第一个参数。如果我将方法签名更改为:
function addOn(context, key, displayName, value, content, title, test, options) {
...
}
.. 我的每一个值都被设置了,options NOW 变成了一个带有空哈希的对象。
明确声明参数有效,但我更愿意使用哈希。关于如何做到这一点的任何想法?