出力
{{ var }}
{{! comment }}
{{{ raw }}}
example
コンパイル
let template = Handlebars.compile(template_source);
let html = template(data);
ヘルパー
- {{#foo}}の形式
Block Helper
- 以下のようなブロックの場合
{{#foo}}{{bar}}{{/foo}}
何もしないブロックヘルパーの定義
Handlebars.registerHelper('foo', function(options) {
return options.fn(this);
});
- ブロックヘルパーに引数を渡した場合
{{#foo args}}{{bar}}{{/foo}}
argsがcontext
Handlebars.registerHelper('with', function(context, options) {
return options.fn(context);
});
- 繰り返し {{#foo args}}{{bar}}{{/foo}}
Handlebars.registerHelper('foo', function(context, options) {
let content = "";
for(let i = 0, max=context.length; i < max; i++) {
content = content + options.fn(context[i]);
}
return content;
});
- キーワード引数
{{#foo args foo=’bar’ key=’value’ }}{{bar}}{{/foo}}
options.hashにキーワード引数が格納されている
- エスケープせずにそのまま出力する場合は下記を返す。
new Handlebars.SafeString(html)
Built-In Helper
-
if
example -
unless
-
each
ループ処理を行う
空の場合はelse節を利用することができる。
{{@index}} インデックス
{{@key}} キー
Partial
Handlebars.registerPartial(partial_name, partial)
{{> partial }}
-
context
{{> partial context }} -
parameter
{{> partial foo=’bar’ }} -
outer
outerパーシャルが下記の場合
foo
{{p1}}
bar
{{p2}}
下記のように埋め込む
{{#> outer}}
{{#inline ‘p1’}}
ABC
{{/inline}}
{{#inline ‘p2’}}
DEF
{{/inline}}
{{/outer}}