テンプレートをクリーンアップするために 7 行または 8 行の HTML を出力するヘルパーを作成しています (そして、DRY に準拠しています - 韻を踏んだ - ウィッカ ウィッカ)。
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 は空のハッシュを持つオブジェクトになります。
パラメータを明示的に宣言することは機能しますが、私はむしろハッシュを使用したいと考えています。これを行う方法について何か考えはありますか?