いくつかの理由から、プリコンパイル済みのテンプレートを使用しています。
- パフォーマンス (実行時に再コンパイルする必要はありません)
- コードの分離 (
<script>
タグの埋め込みや JS でのハードコーディングよりもクリーン) - コンテンツ セキュリティ ポリシー (これは拡張用です)。
基本的に、いくつかのファイルに基づいてtemplates.js
、handlebars コマンド ライン ユーティリティtemplate.handlebars
を使用して生成しています。次に、次のループでこれらのテンプレートを Ember に取り込もうとします。
for (var name in Handlebars.templates) {
var template = Handlebars.templates[name];
Ember.TEMPLATES[name] = template;
}
結果は奇妙です: テキストはロードされているように見えますが、多くのテンプレート機能 (例: {{outlet}}
) が機能しません。これは、ハンドルバーとエンバーハンドルバーが同じものではないためだと思います。
2 つのオプション (および質問) があると思います。
- Ember に適したテンプレートをプリコンパイルします (コマンド ライン経由でこれを行うにはどうすればよいですか?)
- Handlebars テンプレートを Ember に適切にインポートする (どのように?)
UPDATE : 回答によると、Ember.Handlebars は Handlebars と同じではないため、プリコンパイルが異なります。Ember 用にプリコンパイルする簡単なスクリプトを作成しました: https://gist.github.com/3723927