解説
HandlebarsはJSのテンプレートエンジンであらかじめいくつかの機能を提供してくれているが、
いろいろなデータを出力しようとするとどうしても足りない機能が出てくる。そんな時にはHelperを自分で作る必要がある。
ということで配列をそのまま順に出力させるHelperを作ってみた。
コード
/**
* 配列を扱う
*/
Handlebars.registerHelper('array', function(context, options) {
var ret = '';
for(var i=0, j=context.length; i<j; i++) {
//名前がないと取り出せないので'var'という名前を持つオブジェクトにして扱う
ret = ret + options.fn({'val':context[i]});
}
return ret;
});
使い方
//サンプルデータ
var alpha = ['a','b','c','d','e'];
//テンプレート側
<ul>
{{#array alpha}}
<li>{{var}}</li>
{{/array}}
</ul>