1

いくつかの理由から、プリコンパイル済みのテンプレートを使用しています。

  1. パフォーマンス (実行時に再コンパイルする必要はありません)
  2. コードの分離 (<script>タグの埋め込みや JS でのハードコーディングよりもクリーン)
  3. コンテンツ セキュリティ ポリシー (これは拡張用です)。

基本的に、いくつかのファイルに基づいてtemplates.jshandlebars コマンド ライン ユーティリティtemplate.handlebarsを使用して生成しています。次に、次のループでこれらのテンプレートを Ember に取り込もうとします。

for (var name in Handlebars.templates) {
  var template = Handlebars.templates[name];
  Ember.TEMPLATES[name] = template;
}

結果は奇妙です: テキストはロードされているように見えますが、多くのテンプレート機能 (例: {{outlet}}) が機能しません。これは、ハンドルバーとエンバーハンドルバーが同じものではないためだと思います。

2 つのオプション (および質問) があると思います。

  1. Ember に適したテンプレートをプリコンパイルします (コマンド ライン経由でこれを行うにはどうすればよいですか?)
  2. Handlebars テンプレートを Ember に適切にインポートする (どのように?)

UPDATE : 回答によると、Ember.Handlebars は Handlebars と同じではないため、プリコンパイルが異なります。Ember 用にプリコンパイルする簡単なスクリプトを作成しました: https://gist.github.com/3723927

4

1 に答える 1

2

はい、プレーンな Handlebars コンパイラは Ember.Handlebars とは異なる JavaScript にコンパイルされるため、その出力を Ember で使用することはできません。

コマンドラインから Ember.Handlebars を実行する方法はわかりませんが、原則として何かを書くことは可能です。

Ember.Handlebars でプリコンパイルする方法を見つけるには、ember-railsのソース コードを見てください- プリコンパイルをサポートしています。

于 2012-09-13T16:57:19.770 に答える