-
Notifications
You must be signed in to change notification settings - Fork 11
1.x handlebars
HIRAKI Satoru edited this page Jun 2, 2014
·
2 revisions
Beezでは、テンプレートエンジンにHandlebarsが利用可能です。
開発Webサーバ、ビルドでは、handlebars.js を利用しpre-compileをおこないます。
リリースファイル(pre-compileした*.hbsc.jsファイル)のロードは、handlebars.runtime.jsを使用して実行します。
他の、テンプレートエンジンも利用可能ですが、自動コンパイル、ビルドは提供されていませんので独自で構築する必要があります。
Handlebarsファイルの拡張子は下記になります。これはBeezの仕様になります。
-
.hbs: コンパイル前のファイル(こちらで開発を行います) -
.hbsc.js: pre-compileしたファイル -
.hbsp.js: pre-compile(partial)したファイル
開発Webサーバにある *.hbs ファイルは自動で、 *.hbsc.js, *.hbsp.js として同一ディレクトリに自動コンパイルされます。
ビルド時に自動で *.hbs ファイルは *.hbsc.js, *.hbsp.js として同一ディレクトリに自動コンパイルされます
Handlebarsの機能はすべて利用可能です。
*.hbsp.js(Handlebars Partial)を使用する際は、*.hbsp.jsが何かしらの文字列を返す必要があります。
ですので以下のようなファイルを使用するとコンパイルが上手くできません。
{{if hoge}}
content
{{/if}}この場合は以下の例のように文字列を返すように変更してください。
<div>
{{if hoge}}
content
{{/if}}
</div>Handlebarsファイルからi18nメッセージを取得することが出来ます。
エスケープしない
引数なし
{{__ 'Welcome'}}
引数あり
{{__ 'Welcome', 'aaa'}}
エスケープあり
引数なし
{{__e 'Welcome'}}
引数あり
{{__e 'Welcome', 'aaa'}}
beez.vendor.Handlebars.registerHelper('test', function (key) {
// ....
return 'test';
});