Handlebars.jsメモ

Handlebars.js
reference

出力

{{ var }}
{{! comment }}
{{{ raw }}}
example

コンパイル

let template = Handlebars.compile(template_source);
let html = template(data);


ヘルパー

Block
Built-In Helpers

Block Helper

Handlebars.registerHelper('foo', function(options) {
    return options.fn(this);
});
Handlebars.registerHelper('with', function(context, options) {
    return options.fn(context);
});
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

Partial

document

Handlebars.registerPartial(partial_name, partial)

{{> partial }}

outerパーシャルが下記の場合

foo
{{p1}}
bar
{{p2}}

下記のように埋め込む

{{#> outer}}
{{#inline ‘p1’}}
ABC
{{/inline}}
{{#
inline ‘p2’}}
DEF
{{/inline}}
{{/outer}}